jQuery绑定事件监听bind和移除事件监听unbind用法实例详解


Posted in Javascript onJanuary 19, 2016

本文实例讲述了jQuery绑定事件监听bind和移除事件监听unbind用法。分享给大家供大家参考,具体如下:

这里分别采用后bind(eventType,[data],Listener)//data为可选参数,one()该方法绑定的事件触发一次后自动删除,unbind(eventType,Listener),

实例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>unbind(eventType,listener)</title>
<style type="text/css">
<!--
img{
 border:1px solid #000000;
}
input{
 border:1px solid #570000;
}
-->
</style>
<script language="javascript" src="jquery.min.js"></script>
<script language="javascript">
$(function(){
 var fnMyFunc1; //函数变量
 $("img")
 .bind("click",fnMyFunc1 = function(){ //赋给函数变量
  $("#show").append("<div>点击事件1</div>");
 })
 .bind("click",function(){
  $("#show").append("<div>点击事件2</div>");
 })
 .bind("click",function(){
  $("#show").append("<div>点击事件3</div>");
 });
 $("input[type=button]").click(function(){
 $("img").unbind("click",fnMyFunc1); //移除事件监听myFunc1
 });
});
</script>
</head>
<body>
 <img src="11.jpg"> <input type="button" value="移除事件1">
 <div id="show"></div>
</body>
</html>

再来看这段测试代码:

<body>
<input type="button" name="aaa" value="点击我">
<input type="checkbox" name="checkbox1">
</body>

JQuery代码:

$().ready(function(){
for (var i = 0; i < 3; i++) {
$("input[type='button']").click(function(){
alert("aaaa");
});
}
}

alert("aaaa")会执行三次,在事件嵌套事件中,不希望看到这样的情况,需要把上层事件禁用,此时可引入bind和unbind函数解决。

引入函数:

for (var i = 0; i < 3; i++) {
$("input[type='button']").unbind("click");
$("input[type='button']").bind("click", function(){
alert("aaa");
});
}

alert("aaa");仅执行一次。

bind() 方法为被选元素添加一个或多个事件处理程序,并规定事件发生时运行的函数
unbind() 方法移除被选元素的事件处理程序。能够移除所有的或被选的事件处理程序,或者当事件发生时终止指定函数的运行。

event 是事件类型,类型包括:blur、flcus、load、resize、scroll、unload、click、dblclikc、mousedown、mouseup、mousemove、mouseover、mouseout、mouseenter、mouseleave、change、select、submit、keydown、keypress、keyup和error等,当然也可以是自定义名称。

data 为可选参数,作文event.data属性值传递给事件对象的额外数据对象。
function 是用来绑定的处理函数。 

语法:

$(selector).bind(event,data,function) 

event 和 function 必须指出下面些段代码做说明:

例1:删除p的所有事件

$("p").unbind();

例2:删除p的click事件
$("p").unbind("click");

例2:删除p元素click事件后出发的test函数 和 添加p元素click事件后触发的test函数
$("p").unbind("click",test);
$("p").bind("click",test);

注意:要定义 .bind() 必须指明什么事件和函数

现在来看个简单的demo ,整个div有一个点击收起展开的事件,如果想要点击链接但是不触发div的点击事件,需要在触发链接的时候把div的点击事件禁用,这里我用到链接mouseenter事件是unbind删除div的事件。这里还不算完,这时候只要鼠标进入链接区域,div的点击事件就删除了,我们还需要加入鼠标移出链接区域的时候恢复div点击事件。代码如下:

$(function(){ var Func = function(){
  $(".com2").toggle(200); }
  $(".test").click(Func)
  $(".test a").mouseenter(function(){
    $(".test").unbind(); //删除.test的所有事件
  });
  $(".test a").mouseleave(function(){
    $(".test").bind("click",Func); //添加click事件
  });
});

event 是事件类型

function 是用来绑定的处理函数。

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

Javascript 相关文章推荐
js文本框输入点回车触发确定兼容IE、FF等
Nov 19 Javascript
httpclient模拟登陆具体实现(使用js设置cookie)
Dec 11 Javascript
解析JavaScript面向对象概念中的Object类型与作用域
May 10 Javascript
JS全局变量和局部变量最新解析
Jun 24 Javascript
JavaScript实现水平进度条拖拽效果
Jan 18 Javascript
jQuery的Ajax接收java返回数据方法
Aug 11 jQuery
基于vue v-for 多层循环嵌套获取行数的方法
Sep 26 Javascript
用原生 JS 实现 innerHTML 功能实例详解
Apr 03 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
Sep 19 Javascript
vue 解决form表单提交但不跳转页面的问题
Oct 30 Javascript
js new Date()实例测试
Oct 31 Javascript
Vue用mixin合并重复代码的实现
Nov 27 Vue.js
详解JavaScript对象序列化
Jan 19 #Javascript
学习JavaScript设计模式之单例模式
Jan 19 #Javascript
jQuery中bind(),live(),delegate(),on()绑定事件方法实例详解
Jan 19 #Javascript
学习JavaScript设计模式之装饰者模式
Jan 19 #Javascript
jQuery事件绑定用法详解(附bind和live的区别)
Jan 19 #Javascript
浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
Jan 19 #Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
Jan 19 #Javascript
You might like
PHP基础知识回顾
2012/08/16 PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
2013/08/06 PHP
深入剖析PHP中printf()函数格式化使用
2016/05/23 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
2020/02/10 PHP
jQuery 性能优化指南(2)
2009/05/21 Javascript
javascript 跳转代码集合
2009/12/03 Javascript
javascript面向对象的方式实现的弹出层效果代码
2010/01/28 Javascript
基于jquery的文本框与autocomplete结合使用(asp.net+json)
2012/05/30 Javascript
js实现单一html页面两套css切换代码
2013/04/11 Javascript
查看图片(前进后退)功能实现js代码
2013/04/24 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
2015/10/08 Javascript
Jquery on方法绑定事件后执行多次的解决方法
2016/06/02 Javascript
JavaScript排序算法动画演示效果的实现方法
2016/10/18 Javascript
Angular.Js的自动化测试详解
2016/12/09 Javascript
Bootstrap表单简单实现代码
2017/03/06 Javascript
微信小程序组件 marquee实例详解
2017/06/23 Javascript
vuex学习之Actions的用法详解
2017/08/29 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
Vue代码整洁之去重方法整理
2019/08/06 Javascript
vue 二维码长按保存和复制内容操作
2020/09/22 Javascript
教你用python3根据关键词爬取百度百科的内容
2016/08/18 Python
Python内置模块logging用法实例分析
2018/02/12 Python
python+ffmpeg视频并发直播压力测试
2018/03/06 Python
python按照多个条件排序的方法
2019/02/08 Python
Python画图实现同一结点多个柱状图的示例
2019/07/07 Python
利用python实现短信和电话提醒功能的例子
2019/08/08 Python
Python检查图片是否损坏及图片类型是否正确过程详解
2019/09/30 Python
详解Html5中video标签那些属性和方法
2019/07/01 HTML / CSS
求职信内容考虑哪几点
2013/10/05 职场文书
优秀党员获奖感言
2014/02/18 职场文书
幼儿园小班教师寄语
2014/04/03 职场文书
主要负责人任命书
2014/06/06 职场文书
世界遗产导游词
2015/02/13 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书
电力安全教育培训心得体会
2016/01/11 职场文书
Nginx配置https的实现
2021/11/27 Servers