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 相关文章推荐
jQuery 操作下拉列表框实现代码
Feb 22 Javascript
javascript循环变量注册dom事件 之强大的闭包
Sep 08 Javascript
javascript模拟select,jselect的方法实现
Nov 08 Javascript
jquery获得当前html页面源码的方法
Jul 14 Javascript
再谈javascript常见错误及解决方法
Sep 16 Javascript
angularjs中ng-bind-html的用法总结
May 23 Javascript
关于webpack2和模块打包的新手指南(小结)
Aug 07 Javascript
jquery判断滚动条距离顶部的距离方法
Sep 05 jQuery
你了解vue3.0响应式数据怎么实现吗
Jun 07 Javascript
vue 判断元素内容是否超过宽度的方式
Jul 29 Javascript
Vue触发input选取文件点击事件操作
Aug 07 Javascript
el-form 多层级表单的实现示例
Sep 10 Javascript
详解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 购物车的例子
2009/05/04 PHP
windows下开发并编译PHP扩展的方法
2011/03/18 PHP
php 字符串压缩方法比较示例
2014/01/23 PHP
PHP curl使用实例
2015/07/02 PHP
thinkphp5.1 框架钩子和行为用法实例分析
2020/05/25 PHP
textarea中的手动换行处理的jquery代码
2011/02/26 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
在JavaScript中使用对数Math.log()方法的教程
2015/06/15 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
浅析JS中的 map, filter, some, every, forEach, for in, for of 用法总结
2017/03/29 Javascript
Javascript中 toFixed四舍六入方法
2017/08/21 Javascript
JS中this的指向以及call、apply的作用
2018/05/06 Javascript
解决vue.js提交数组时出现数组下标的问题
2019/11/05 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
ES6 Generator基本使用方法示例
2020/06/06 Javascript
[01:15:12]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#4Newbee VS CDEC
2016/03/03 DOTA
本地文件上传到七牛云服务器示例(七牛云存储)
2014/01/11 Python
利用Python的Flask框架来构建一个简单的数字商品支付解决方案
2015/03/31 Python
ActiveMQ:使用Python访问ActiveMQ的方法
2019/01/30 Python
python 实现selenium断言和验证的方法
2019/02/13 Python
解决python中的幂函数、指数函数问题
2019/11/25 Python
Python正则表达式高级使用方法汇总
2020/06/18 Python
浅谈keras 模型用于预测时的注意事项
2020/06/27 Python
CSS3支持IE6, 7, and 8的边框border属性
2012/12/28 HTML / CSS
英国团购网站:Groupon英国
2017/11/28 全球购物
英国蛋糕装饰用品一站式商店:Craft Company
2019/03/18 全球购物
计算机软件个人的自荐信范文
2013/12/01 职场文书
岳父生日宴会答谢词
2014/01/13 职场文书
驾驶员岗位职责
2014/01/29 职场文书
有关西游记的读书笔记
2015/06/25 职场文书
小学远程教育工作总结
2015/08/13 职场文书
导游词之海南天涯海角
2019/12/05 职场文书
Python入门之基础语法详解
2021/05/11 Python
Mysql Online DDL的使用详解
2021/05/20 MySQL
在虚拟机中安装windows server 2008的图文教程
2022/06/28 Servers