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模拟面向对象全解(二、类型与赋值)
Jul 13 Javascript
分享9点个人认为比较重要的javascript 编程技巧
Apr 27 Javascript
JavaScript中计算网页中某个元素的位置
Jun 10 Javascript
JavaScript中Date对象的常用方法示例
Oct 24 Javascript
AngularJS入门教程之REST和定制服务详解
Aug 19 Javascript
详解用webpack把我们的业务模块分开打包的方法
Jul 20 Javascript
js实现图片轮播效果学习笔记
Jul 26 Javascript
详解JavaScript中的六种错误类型
Sep 21 Javascript
基于JavaScript实现简单的音频播放功能
Jan 07 Javascript
jQuery使用each遍历循环的方法
Sep 19 jQuery
vue+element实现表单校验功能
May 20 Javascript
Vue退出登录时清空缓存的实现
Nov 12 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
PHP4引用文件语句的对比
2006/10/09 PHP
使用cookie实现统计访问者登陆次数
2013/06/08 PHP
解析thinkphp import 文件内容变量失效的问题
2013/06/20 PHP
请离开include_once和require_once
2013/07/18 PHP
php构造函数的继承方法
2015/02/09 PHP
Smarty环境配置与使用入门教程
2016/05/11 PHP
jquery操作select option 的代码小结
2011/06/21 Javascript
禁止空格提交表单的js代码
2013/11/17 Javascript
JavaScript打印网页指定区域的例子
2014/05/03 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
ECMAScript6快速入手攻略
2016/07/18 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
浅析BootStrap中Modal(模态框)使用心得
2016/12/24 Javascript
canvas实现绘制吃豆鱼效果
2017/01/12 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
2018/05/13 Javascript
vue-rx的初步使用教程
2018/09/21 Javascript
基于vue2.0的活动倒计时组件countdown(附源码下载)
2018/10/09 Javascript
vue 实现通过vuex 存储值 在不同界面使用
2019/11/11 Javascript
[02:56]《DAC最前线》之国外战队抵达上海备战亚洲邀请赛
2015/01/28 DOTA
使用Python构建Hopfield网络的教程
2015/04/14 Python
在Python中操作时间之strptime()方法的使用
2020/12/30 Python
python3.6 tkinter实现屏保小程序
2019/07/30 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
Python3.9又更新了:dict内置新功能
2020/02/28 Python
基于python检查SSL证书到期情况代码实例
2020/04/04 Python
H5 meta小结(前端必看篇)
2016/08/24 HTML / CSS
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
幼师自荐信
2013/10/26 职场文书
大学生创业感言
2014/01/25 职场文书
房屋买卖协议书范本
2014/09/27 职场文书
大学生村官个人总结
2015/02/15 职场文书
后勤工作个人总结
2015/02/28 职场文书
2015年领导干部廉洁自律工作总结
2015/05/26 职场文书
只需要100行Python代码就可以实现的贪吃蛇小游戏
2021/05/27 Python
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android