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 相关文章推荐
jQuery判断checkbox是否选中的小例子
Dec 02 Javascript
使用js如何实现全选与全不选
Dec 30 Javascript
Javascript基础教程之数组 array
Jan 18 Javascript
深入理解JavaScript系列(29):设计模式之装饰者模式详解
Mar 03 Javascript
jQuery EasyUI Dialog拖不下来如何解决
Sep 28 Javascript
简单实现jquery焦点图
Dec 12 Javascript
微信小程序 引入es6 promise
Apr 12 Javascript
推荐三款不错的图片压缩上传插件(webuploader、localResizeIMG4、LUploader)
Apr 21 Javascript
详解基于React.js和Node.js的SSR实现方案
Mar 21 Javascript
详解一个基于套接字实现长连接的express
Mar 28 Javascript
如何在JavaScript中创建具有多个空格的字符串?
Feb 23 Javascript
详解webpack的clean-webpack-plugin插件报错
Oct 16 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数据库连接
2006/10/09 PHP
phpfans留言版用到的数据操作类和分页类
2007/01/04 PHP
PHP判断FORM表单或URL参数来的数据是否为整数的方法
2016/03/25 PHP
php验证身份证号码正确性的函数
2016/07/20 PHP
php foreach如何跳出两层循环(详解)
2016/11/05 PHP
PHP hex2bin()函数用法讲解
2019/02/25 PHP
Yii框架操作cookie与session的方法实例详解
2019/09/04 PHP
In Javascript Class, how to call the prototype method.(three method)
2007/01/09 Javascript
一个用js实现的页内搜索代码
2007/05/23 Javascript
javascript 进度条 实现代码
2009/07/30 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
2013/04/26 Javascript
浅析JavaScript中的typeof运算符
2013/11/30 Javascript
js实现文本框选中的方法
2015/05/26 Javascript
举例详解AngularJS中ngShow和ngHide的使用方法
2015/06/19 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
2016/12/21 Javascript
js实现二级导航功能
2017/03/03 Javascript
vue实现图片滚动的示例代码(类似走马灯效果)
2018/03/03 Javascript
JavaScript设计模式之模板方法模式原理与用法示例
2018/08/07 Javascript
vueScroll实现移动端下拉刷新、上拉加载
2019/03/22 Javascript
python使用自定义user-agent抓取网页的方法
2015/04/15 Python
Python中%r和%s的详解及区别
2017/03/16 Python
python pandas 对时间序列文件处理的实例
2018/06/22 Python
Python3.5字符串常用操作实例详解
2019/05/01 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
Django利用elasticsearch(搜索引擎)实现搜索功能
2020/11/26 Python
利用HTML5的新特点实现图片文件异步上传
2014/05/29 HTML / CSS
美体小铺加拿大官方网站:The Body Shop加拿大
2016/10/30 全球购物
缅甸网上购物:Shop.com.mm
2017/12/05 全球购物
OnePlus加拿大官网:中国国际化手机品牌
2020/10/13 全球购物
结构工程个人自荐信范文
2013/11/30 职场文书
秋季运动会表扬稿
2014/01/16 职场文书
公司爱心捐款倡议书
2014/05/14 职场文书
捐款通知怎么写
2015/04/24 职场文书
2019年度行政文员工作计划范本!
2019/07/04 职场文书
python3中apply函数和lambda函数的使用详解
2022/02/28 Python
浅谈Redis变慢的原因及排查方法
2022/06/21 Redis