JQuery中DOM事件合成用法实例分析


Posted in Javascript onJune 13, 2015

本文实例讲述了JQuery中DOM事件合成用法。分享给大家供大家参考。具体分析如下:

jQuery有两个合成事件——hover()方法和toggle()方法,类似前面讲过的ready()方法,hover()方法和toggle()方法都属于jQuery自定义的方法。

hover()方法

hover()方法的语法结构为:
hover(enter,leave);

hover()方法用于模拟光标悬停事件。当光标移动到元素上时,会触发指定的第1个函数(enter);当光标移出这个元素时,会触发指定的第2个函数(leave)。

代码为:

$(function(){
 $("#panel h5.head").hover(function(){
  $(this).next().show();
 },function(){
  $(this).next().hide(); 
 })
})

代码运行后的效果与下面代码运行后的效果是一样的。当光标滑过“标题”链接时,相应的“内容”将被显示;当光标滑出“标题”链接后,相应的“内容”则被隐藏。

$(function(){ 
 $("#panel h5.head").mouseover(function(){ 
  $(this).next("div.content").show(); 
 }); 
 $("#panel h5.head").mouseover(function(){ 
  $(this).next("div.content").hide(); 
 }) 
});

注意:

1. CSS中有伪类选择符,例如“:hover",当用户光标悬停在元素上时,会改变元素的外观。在大多数符合规范的浏览器中,伪类选择符可以用于任何元素。然而在IE 6浏览器中,伪类选择符仅可用于超链接元素。对于其他元素,可以使用jQuery的hover()方法。

2. hover()方法准确来说是替代jQuery中的bind("mouseenter")和bind("mouseleave"),而不是替代bind("mouseover")和bind("mouseout")。因此当需要触发hover()方法的第2个函数时,需要用trigger("mouseleave")来触发,而不是trigger("mouseout")。

toggle()方法

toggle()方法的语法结构为:
toggle(fnl, fn2, ...fnN);

toggle()方法用于模拟鼠标连续单击事件。第1次单击元素,触发指定的第1个函数(fn1);当再次单击同一元素时,则触发指定的第2个函数(fh2);如果有更多函数,则依次触发,直到最后一个。随后的每次单击都重复对这几个函数的轮番调用。

在前面的加强效果的例子中,使用了以下jQuery代码:

$(function(){
 $("#panel h5.head").toggle(function(){
  $(this).next().show();
 },function(){
  $(this).next().hide();
 })
})

通过使用toggle()方法不仅实现了同样的效果,同时也简化了代码。

toggle()方法在jQuery中还有另外一个作用:切换元素的可见状态。如果元素是可见的,单击切换后则为隐藏;如果元素是隐藏的,单击切换后则为可见的。因此上面的代码还可以写成如下jQuery代码:

$(function(){ 
 $("#panel h5.head").toggle(function(){ 
  $(this).next().toggle(); 
 },function(){ 
  $(this).next().toggle(); 
 }) 
})

为了能有更好的用户体验,现在需要在用户单击“标题”链接后,不仅显示“内容”,而且高亮显示“标题”。代码为:

$(function(){ 
 $("#panel h5.head").toggle(function(){ 
   $(this).addClass("highlight"); 
  $(this).next().show(); 
 },function(){ 
  $(this).removeClass("highlight"); 
   $(this).next().hide(); 
 }); 
})

运行代码后,如果“内容”是显示的,“标题”则会高亮显示:如果“内容”是隐藏的,则不会高亮显示“新闻标题”。

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
从零开始学习jQuery (四) jQuery中操作元素的属性与样式
Feb 23 Javascript
String.prototype实现的一些javascript函数介绍
Nov 22 Javascript
js兼容pc端浏览器并有多种弹出小提示的手机端浮层控件实例
Apr 29 Javascript
微信小程序中的onLoad详解及简单实例
Apr 05 Javascript
angularjs实现搜索的关键字在正文中高亮出来
Jun 13 Javascript
JS 实现百度搜索功能
Feb 01 Javascript
vue之父子组件间通信实例讲解(props、$ref、$emit)
May 22 Javascript
vue中动态设置meta标签和title标签的方法
Jul 11 Javascript
Vue 报错TypeError: this.$set is not a function 的解决方法
Dec 17 Javascript
Vue中computed、methods与watch的区别总结
Apr 10 Javascript
Vue之beforeEach非登录不能访问的实现(代码亲测)
Jul 18 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
Oct 18 Javascript
JQuery中DOM事件绑定用法详解
Jun 13 #Javascript
JQuery中DOM加载与事件执行实例分析
Jun 13 #Javascript
JavaScript中的Math.LN2属性用法详解
Jun 12 #Javascript
JavaScript中的Math.E属性使用详解
Jun 12 #Javascript
详解JavaScript中Date.UTC()方法的使用
Jun 12 #Javascript
JavaScript中的parse()方法使用简介
Jun 12 #Javascript
Javascript中setTimeOut和setInterval的定时器用法
Jun 12 #Javascript
You might like
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
2018/01/15 PHP
js中关于String对象的replace使用详解
2011/05/24 Javascript
js禁止document element对象选中文本实现代码
2013/03/21 Javascript
js 为label标签和div标签赋值的方法
2013/08/08 Javascript
如何将网页表格内容导入excel
2014/02/18 Javascript
jquery控制表单输入框显示默认值的方法
2015/05/22 Javascript
JavaScript中的acos()方法使用详解
2015/06/14 Javascript
JS控制表单提交的方法
2015/07/09 Javascript
JavaScript学习小结(一)——JavaScript入门基础
2015/09/02 Javascript
fastclick插件导致日期(input[type="date"])控件无法被触发该如何解决
2015/11/09 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
2017/02/17 Javascript
jQuery UI Grid 模态框中的表格实例代码
2017/04/01 jQuery
JavaScript模块化之使用requireJS按需加载
2017/04/12 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
2017/05/12 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
JavaScript数组去重算法实例小结
2018/05/07 Javascript
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
node.js爬取中关村的在线电瓶车信息
2018/11/13 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
[47:26]完美世界DOTA2联赛 LBZS vs Forest 第二场 11.07
2020/11/09 DOTA
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
Python实现调用另一个路径下py文件中的函数方法总结
2018/06/07 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
python通过移动端访问查看电脑界面
2020/01/06 Python
简历自荐信
2013/12/02 职场文书
班长自荐书范文
2014/02/11 职场文书
大学共青团员个人自我评价
2014/04/16 职场文书
质量保证书范本
2014/04/29 职场文书
学校关爱留守儿童活动方案
2014/08/27 职场文书
工作业绩不及格检讨书
2014/10/28 职场文书
质量保证书
2015/01/17 职场文书
2015年国庆节活动总结
2015/03/23 职场文书
员工手册编写范本
2015/05/14 职场文书
小米11和iphone12哪个值得买?小米11对比iphone12评测
2021/04/21 数码科技
Jupyter Notebook内使用argparse报错的解决方案
2021/06/03 Python