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 相关文章推荐
JavaScript Memoization 让函数也有记忆功能
Oct 27 Javascript
js判断选择时间不能小于当前时间的示例代码
Sep 24 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
Jul 27 Javascript
js实现延时加载Flash的方法
Nov 26 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
Jul 12 Javascript
JavaScript中数组slice和splice的对比小结
Sep 22 Javascript
Vue工程模板文件 webpack打包配置方法
Dec 26 Javascript
jQuery实现的手动拖动控制进度条效果示例【测试可用】
Apr 18 jQuery
vue通过点击事件读取音频文件的方法
May 30 Javascript
vue+springmvc导出excel数据的实现代码
Jun 27 Javascript
ES6 如何改变JS内置行为的代理与反射
Feb 11 Javascript
vue组件入门知识全梳理
Sep 21 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
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
论坛头像随机变换代码
2006/10/09 PHP
php中的常用魔术方法汇总
2016/02/14 PHP
php插入mysql数据返回id的方法
2018/05/31 PHP
php多进程中的阻塞与非阻塞操作实例分析
2020/03/04 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
加速IE的Javascript document输出的方法
2010/12/02 Javascript
JQuery的read函数与js的onload不同方式实现
2013/03/18 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
js交换排序 冒泡排序算法(Javascript版)
2014/10/04 Javascript
jquery通过closest选择器修改上级元素的方法
2015/03/17 Javascript
纯js实现悬浮按钮组件
2016/12/17 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
2017/01/20 Javascript
使用vue-cli编写vue插件的方法
2018/02/26 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
2018/03/01 Javascript
vue实现按需加载组件及异步组件功能
2019/05/27 Javascript
Openlayers绘制地图标注
2020/09/28 Javascript
原生JavaScript实现留言板
2021/01/10 Javascript
详解Python中的join()函数的用法
2015/04/07 Python
Python中numpy模块常见用法demo实例小结
2019/03/16 Python
python常用数据重复项处理方法
2019/11/22 Python
python pyenv多版本管理工具的使用
2019/12/23 Python
tensorflow 限制显存大小的实现
2020/02/03 Python
为什么相对PHP黑python的更少
2020/06/21 Python
中国医药集团国药在线:国药网
2017/02/06 全球购物
巴西独家产品和现场演示购物网站:Shoptime
2019/07/11 全球购物
工商管理实习自我鉴定
2013/09/28 职场文书
办公室文员工作自我评价
2013/12/01 职场文书
写给女朋友的道歉信
2014/01/12 职场文书
30岁生日感言
2014/01/25 职场文书
班级文化标语
2014/06/23 职场文书
高中生国庆节演讲稿范文2014
2014/09/21 职场文书
解除劳动合同协议书(样本)
2014/10/02 职场文书
大学生党员自我评价
2015/03/04 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书
Python中seaborn库之countplot的数据可视化使用
2021/06/11 Python