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 相关文章推荐
在JavaScript中通过URL传递汉字的方法
Apr 09 Javascript
JavaScript和ActionScript的交互实现代码
Aug 01 Javascript
Bootstrap每天必学之按钮
Nov 26 Javascript
JS日程管理插件FullCalendar简单实例
Feb 07 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
Mar 25 jQuery
JS实现的Unicode编码转换操作示例
Apr 28 Javascript
Vue组件通信实践记录(推荐)
Aug 15 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
Sep 21 jQuery
原生JS实现的放大镜特效示例【测试可用】
Dec 08 Javascript
JS 封装父页面子页面交互接口的实例代码
Jun 25 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
Apr 01 Javascript
node koa2 ssr项目搭建的方法步骤
Dec 11 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
Zend Studio 实用快捷键一览表(精心整理)
2013/08/10 PHP
yii框架builder、update、delete使用方法
2014/04/30 PHP
JavaScript中Array 对象相关的几个方法
2006/12/22 Javascript
JS焦点图切换,上下翻转
2011/05/12 Javascript
提示$ is not defined错误分析及解决
2013/04/09 Javascript
用Js实现的动态增加表格示例自己写的
2013/10/21 Javascript
JS画线(实例代码)
2013/11/20 Javascript
jquery单行文字向上滚动效果示例
2014/03/06 Javascript
一个检测表单数据的JavaScript实例
2014/10/31 Javascript
深入理解JavaScript系列(44):设计模式之桥接模式详解
2015/03/04 Javascript
jQuery Validate插件实现表单强大的验证功能
2015/12/18 Javascript
Angular在一个页面中使用两个ng-app的方法
2017/02/20 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
2017/02/22 Javascript
Angularjs 与 bower安装和使用详解
2017/05/11 Javascript
jQuery动态添加元素无法触发绑定事件的解决方法分析
2018/01/02 jQuery
Javascript网页抢红包外挂实现分享
2018/01/11 Javascript
vue2中使用sass并配置全局的sass样式变量的方法
2018/09/04 Javascript
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
2018/10/10 jQuery
js构造函数constructor和原型prototype原理与用法实例分析
2020/03/02 Javascript
详解nginx配置vue h5 history去除#号
2020/11/09 Javascript
[03:31]DOTA2英雄基础教程 大地之灵
2013/12/17 DOTA
python实现简单聊天应用 python群聊和点对点均实现
2017/09/14 Python
python判断计算机是否有网络连接的实例
2018/12/15 Python
Linux下通过python获取本机ip方法示例
2019/09/06 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
2019/12/17 Python
python实现12306登录并保存cookie的方法示例
2019/12/17 Python
春节到了 教你使用python来抢票回家
2020/01/06 Python
Django设置Postgresql的操作
2020/05/14 Python
python如何实时获取tcpdump输出
2020/09/16 Python
HTML5微信播放全屏问题的解决方法
2017/03/09 HTML / CSS
Missguided美国官网:英国时尚品牌
2018/01/18 全球购物
名人演讲稿范文
2013/12/28 职场文书
《沉香救母》教学反思
2014/04/19 职场文书
2015年为民办实事工作总结
2015/05/26 职场文书
2016先进集体事迹材料范文
2016/02/25 职场文书
WCG2010 星际争霸决赛 Flash vs Goojila 1 星际经典比赛回顾
2022/04/01 星际争霸