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实例收集(20个)
Apr 21 Javascript
Javascript实现禁止输入中文或英文的例子
Dec 09 Javascript
node.js中的http.response.getHeader方法使用说明
Dec 14 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
Mar 19 Javascript
JavaScript数组对象赋值用法实例
Aug 04 Javascript
详解javascript实现瀑布流绝对式布局
Jan 29 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
Oct 13 Javascript
AngularJS动态绑定HTML的方法分析
Nov 07 Javascript
vue引入jq插件的实例讲解
Sep 12 Javascript
Vue.js 实现数据展示全部和收起功能
Sep 05 Javascript
Node.js对MongoDB进行增删改查操作的实例代码
Apr 18 Javascript
原生js实现点击轮播切换图片
Feb 11 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面试常用算法(推荐)
2016/07/22 PHP
JavaScript进阶教程(第四课第一部分)
2007/04/05 Javascript
在javascript中对于DOM的加强
2013/04/11 Javascript
Jquery动态进行图片缩略的原理及实现
2013/08/13 Javascript
Jquery增加鼠标中间功能mousewheel的实例代码
2013/09/05 Javascript
javascript跨域的4种方法和原理详解
2014/04/08 Javascript
JavaScript代码编写中各种各样的坑和填坑方法
2014/06/06 Javascript
jQuery ajax分页插件实例代码
2016/01/27 Javascript
PHP获取当前页面完整URL的方法
2016/12/02 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
vue项目中使用axios上传图片等文件操作
2017/11/02 Javascript
vue2实现数据请求显示loading图
2017/11/28 Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
2018/02/23 Javascript
Vue脚手架编写试卷页面功能
2020/03/17 Javascript
Python3 伪装浏览器的方法示例
2017/11/23 Python
Python实现利用163邮箱远程关电脑脚本
2018/02/22 Python
Python 查看list中是否含有某元素的方法
2018/06/27 Python
Flask模拟实现CSRF攻击的方法
2018/07/24 Python
Python中求对数方法总结
2020/03/10 Python
python名片管理系统开发
2020/06/18 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
L’AGENCE官网:加州女装品牌
2018/06/03 全球购物
定义一结构体变量,用其表示点坐标,并输入两点坐标,求两点之间的距离
2015/08/17 面试题
考博自荐信
2013/10/25 职场文书
工作自荐信
2013/12/11 职场文书
学前教育毕业生自荐信范文
2013/12/24 职场文书
年度考核评语
2014/01/19 职场文书
收款授权委托书
2014/10/02 职场文书
代办社保委托书范文
2014/10/06 职场文书
杜甫草堂导游词
2015/02/03 职场文书
红色电影观后感
2015/06/18 职场文书
班干部学习委员竞选稿
2015/11/20 职场文书
关于antd tree 和父子组件之间的传值问题(react 总结)
2021/06/02 Javascript
Java后台生成图片的完整步骤
2021/08/04 Java/Android
MySQL安装失败的原因及解决步骤
2022/06/14 MySQL