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 不只是脚本
May 30 Javascript
基于jQuery判断两个元素是否有重叠部分的代码
Jul 25 Javascript
js实现在文本框光标处添加字符的方法介绍
Nov 24 Javascript
js实现省市联动效果的简单实例
Feb 10 Javascript
jQuery验证插件 Validate详解
Nov 20 Javascript
JQ实现新浪游戏首页幻灯片
Jul 29 Javascript
js实现的二分查找算法实例
Jan 21 Javascript
获取阴历(农历)和当前日期的js代码
Feb 15 Javascript
JS组件Bootstrap实现弹出框效果代码
Apr 26 Javascript
微信小程序实现跟随菜单效果和循环嵌套加载数据
Nov 21 Javascript
js canvas实现红包照片效果
Aug 21 Javascript
js回文数的4种判断方法示例
Jun 04 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
PHP实现的日历功能示例
2018/09/01 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
2019/10/01 PHP
Prototype使用指南之dom.js
2007/01/10 Javascript
Mootools 1.2教程 选项卡效果(Tabs)
2009/09/15 Javascript
JS 表单验证大全
2011/11/23 Javascript
javascript setTimeout和setInterval计时的区别详解
2013/06/21 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
jQuery实现的个性化返回底部与返回顶部特效代码
2015/10/30 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
nodejs微信公众号支付开发
2016/09/19 NodeJs
JS动态给对象添加属性和值的实现方法
2016/10/21 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
2017/12/08 Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
2018/12/06 jQuery
element ui分页多选,翻页记忆的实例
2019/09/03 Javascript
elementUI同一页面展示多个Dialog的实现
2020/11/19 Javascript
Python解释执行原理分析
2014/08/22 Python
Python实现合并两个列表的方法分析
2018/05/28 Python
浅谈Python3中strip()、lstrip()、rstrip()用法详解
2019/04/29 Python
python+Django实现防止SQL注入的办法
2019/10/31 Python
python 中的[:-1]和[::-1]的具体使用
2020/02/13 Python
Python 中如何使用 virtualenv 管理虚拟环境
2021/01/21 Python
利用HTML5画出一个坦克的形状具体实现代码
2013/06/20 HTML / CSS
英国最大的在线时尚眼镜店:Eyewearbrands
2019/03/12 全球购物
体育纪念品、亲笔签名的体育收藏品:Steiner Sports
2020/07/31 全球购物
2019年c语言经典面试题目
2016/08/17 面试题
汽车销售求职自荐信
2013/10/01 职场文书
三月学雷锋活动总结
2014/06/26 职场文书
放飞梦想演讲稿600字
2014/08/26 职场文书
停电通知范文
2015/04/16 职场文书
计划生育责任书
2015/05/09 职场文书
刑事申诉状范文
2015/05/20 职场文书
预备党员群众意见
2015/06/01 职场文书
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
2021/06/22 Python