JQuery中DOM事件绑定用法详解


Posted in Javascript onJune 13, 2015

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

在文档加载完成后,如果打算为元素绑定事件来完成某些操作,则可以使用bind()方法来对匹配元素进行特定事件的绑定,bind()方法的调用格式为:

bind( type [, data] , fn);

bind()方法有3个参数,说明如下。

第1个参数是事件类型,类型包括:blur、focus、load、resize、scroll、unload、click、dblclick、mousedown、mouseup、mousemove、mouseover、mouseout、mouseenter、mouseleave、change、select、submit、keydown、keypress、keyup和error等,当然也可以是自定义名称。
第2个参数为可选参数,作为event.data属性值传递给事件对象的额外数据对象。
第3个参数则是用米绑定的处理函数。

可以发现,jQuery中的事件绑定类型比普通的JavaScript事件绑定类型少了“on”。例如鼠标单击事件在jQuer中对应的是click事件,而在JavaScript中对应的是onclick()函数。

按照需求,需要完成以下几个步骤。

1. 等待DOM加载完毕。
2. 找到“标题”所在的元素,绑定click事件。
3. 找到“内容”元素,将“内容”元素显示。

$(function(){
 $("#panel h5.head").bind("click",function(){
   var $content = $(this).next();
   if($content.is(":visible")){
      $content.hide();
    }else{
      $content.show();
    }
  })
})

与ready()方法一样,bind()方法也可以多次调用。

上面jQuery代码中有一个关键字this,与在JavaScript中的作用一样,this引用的是携带相应行为的DOM元素。为了使该DOM元素能够使用jQuery中的方法,可以使用$(this)将其转换为jQuery对象。

为了判断元素是否显示,可以使用jQuery中的is()方法来完成。在代码中,发现$(this).next("div.content")被多次使用,因此可以为它定义一个局部变量:$content。

上面的例子中,给元素绑定的事件类型是click,当用户单击的时候会触发绑定的事件,然后执行事件的函数代码。现在把事件类型换成mouseover和mouseout,即当光标滑过的时候,就触发事件。需要进行以下几步操作。

1. 等待DOM加载完毕。
2. 找到“标题”所在的元素,绑定mouseover事件。
3. 找到“内容”元素,显示“内容”。
4. 找到“标题”所在的元素,绑定mouseout事件。
5. 找到“内容”元素,隐藏“内容”。

代码运行后,当光标滑过“标题”链接后,相应的“内容”将被显示。当光标滑出“标题”链接后,相应的“内容”则被隐藏。

代码如下:

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

在上面几个例子中,分别用bind()方法给“标题”绑定了click事件、mouseover事件和mouseout事件,绑定方法都一样。除此之外,bind0方法还能绑定其他所有的JavaScript事件。

像click、mouseover和mouseout这类事件,在程序中经常会使用到,jQuery为此也提供了一套简写的方法。简写方法和bind()方法的使用类似,实现的效果也相同,惟一的区别是能够减少代码量。

例如把上面的例子改写成使用简写绑定事件的方式,代码如下:

$(function(){
 $("#panel2 h5.head").mouseover(function(){
   $(this).next().show();
  });
  $("#panel2 h5.head").mouseout(function(){
    $(this).next().hide();
  })
})

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

Javascript 相关文章推荐
由JavaScript中call()方法引发的对面向对象继承机制call的思考
Sep 12 Javascript
JavaScript中OnLoad几种使用方法
Dec 15 Javascript
ie6下png图片背景不透明的解决办法使用js实现
Jan 11 Javascript
alert中断settimeout计时功能
Jul 26 Javascript
js获取多个tagname的节点数组
Sep 22 Javascript
深入了解Node.js中的一些特性
Sep 25 Javascript
JavaScript中getUTCMinutes()方法的使用详解
Jun 10 Javascript
微信小程序 出现错误:{"baseresponse":{"errcode":-80002,"errmsg":""}}解决办法
Feb 23 Javascript
Express URL跳转(重定向)的实现方法
Apr 07 Javascript
vue2.0 axios跨域并渲染的问题解决方法
Mar 08 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
Jun 25 Javascript
nuxt 路由、过渡特效、中间件的实现代码
Nov 06 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
jQuery插件datepicker 日期连续选择
Jun 12 #Javascript
You might like
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
2013/10/26 PHP
对PHP新手的一些建议(PHP学习经验总结)
2014/08/20 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
2018/10/14 PHP
JavaScript DOM 添加事件
2009/02/14 Javascript
iframe里的页面禁止右键事件的方法
2014/06/10 Javascript
javascript获取select值的方法分析
2015/07/02 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
2016/04/07 Javascript
JS实现输入框提示文字点击时消失效果
2016/07/19 Javascript
浅谈js常用内置方法和对象
2016/09/24 Javascript
jQuery继承extend用法详解
2016/10/10 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
2016/10/31 Javascript
angular 动态组件类型详解(四种组件类型)
2017/02/22 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
2017/07/27 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
2019/05/14 jQuery
vue中typescript装饰器的使用方法超实用教程
2019/06/17 Javascript
如何通过vscode运行调试javascript代码
2020/07/24 Javascript
python 时间戳与格式化时间的转化实现代码
2016/03/23 Python
Python中pygal绘制雷达图代码分享
2017/12/07 Python
利用pyinstaller将py文件打包为exe的方法
2018/05/14 Python
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
对python判断是否回文数的实例详解
2019/02/08 Python
wxPython色环电阻计算器
2019/11/18 Python
基于YUV 数据格式详解及python实现方式
2019/12/09 Python
详解Python 重学requests发起请求的基本方式
2020/02/07 Python
基于Keras 循环训练模型跑数据时内存泄漏的解决方式
2020/06/11 Python
amazeui树节点自动展开折叠面板并选中第一个树节点的实现
2020/08/24 HTML / CSS
2014年清明节寄语
2014/04/03 职场文书
股东授权委托书范本
2014/09/13 职场文书
学校领导干部民主生活会整改方案
2014/09/29 职场文书
教师自我剖析材料(四风问题)
2014/09/30 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书
Filebeat 采集 Nginx 日志的方法
2021/03/31 Servers
解决Swagger2返回map复杂结构不能解析的问题
2021/07/02 Java/Android
如何利用Python实现n*n螺旋矩阵
2022/01/18 Python
Typescript类型系统FLOW静态检查基本规范
2022/05/25 Javascript