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 相关文章推荐
列表内容的选择
Jun 30 Javascript
动态改变textbox的宽高的js
Oct 26 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
Apr 01 Javascript
JavaScript返回上一页的三种方法及区别介绍
Jul 04 Javascript
浅谈javascript 函数表达式和函数声明的区别
Jan 05 Javascript
js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码
Sep 09 Javascript
微信小程序 实战实例开发流程详细介绍
Jan 05 Javascript
微信小程序异步处理详解
Nov 10 Javascript
jquery中done和then的区别(详解)
Dec 19 jQuery
JS实现字符串去重及数组去重的方法示例
Apr 21 Javascript
浅谈vue 锚点指令v-anchor的使用
Nov 13 Javascript
你不知道的 TypeScript 高级类型(小结)
Aug 28 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/02/12 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
Laravel事件监听器用法实例分析
2019/03/12 PHP
PHP实现字母数字混合验证码功能
2019/07/11 PHP
纯CSS打造的导航菜单(附jquery版)
2010/08/07 Javascript
ASP.NET jQuery 实例10 动态修改hyperlink的URL值
2012/02/03 Javascript
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
js在IE与firefox的差异集锦
2014/11/11 Javascript
jquery.validate使用时遇到的问题
2015/05/25 Javascript
JS自定义选项卡函数及用法实例分析
2015/09/02 Javascript
jQuery通过deferred对象管理ajax异步
2016/05/20 Javascript
js中创建对象的几种方式
2017/02/05 Javascript
ES6 javascript的异步操作实例详解
2017/10/30 Javascript
JS实现十字坐标跟随鼠标效果
2017/12/25 Javascript
详解webpack-dev-server 设置反向代理解决跨域问题
2018/04/18 Javascript
详解NodeJS Https HSM双向认证实现
2019/03/12 NodeJs
javascript面向对象程序设计实践常用知识点总结
2019/07/29 Javascript
小程序采集录音并上传到后台
2019/11/22 Javascript
vue3+typescript实现图片懒加载插件
2020/10/26 Javascript
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
详谈python中冒号与逗号的区别
2018/04/18 Python
Python字典的概念及常见应用实例详解
2019/10/30 Python
Python任务调度模块APScheduler使用
2020/04/15 Python
理肤泉俄罗斯官网:La Roche-Posay俄罗斯
2018/07/24 全球购物
请说出以下代码输出什么
2013/08/30 面试题
运动会广播稿60字
2014/01/15 职场文书
文明宿舍获奖感言
2014/02/07 职场文书
策划总监岗位职责
2014/02/16 职场文书
企业厂务公开实施方案
2014/03/26 职场文书
《画》教学反思
2014/04/14 职场文书
县长“四风”对照检查材料思想汇报
2014/10/05 职场文书
2015年实习单位评语
2015/03/25 职场文书
志愿者服务宣传标语口号
2015/12/26 职场文书
纯CSS3实现div按照顺序出入效果
2021/07/15 HTML / CSS
关于k8s环境部署mysql主从的问题
2022/03/13 MySQL
Mysql开启外网访问
2022/05/15 MySQL