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为对象原型prototype添加属性的两种方式
Aug 01 Javascript
JS跨域代码片段
Aug 30 Javascript
重写javascript中window.confirm的行为
Oct 21 Javascript
JS去掉第一个字符和最后一个字符的实现代码
Feb 20 Javascript
根据当前时间在jsp页面上显示上午或下午
Aug 18 Javascript
jQuery鼠标事件汇总
Aug 30 Javascript
第九章之路径分页标签与徽章组件
Apr 25 Javascript
js实现可输入可选择的select下拉框
Dec 21 Javascript
mpvue 如何使用腾讯视频插件的方法
Jul 16 Javascript
jQuery实现图片简单轮播功能示例
Aug 13 jQuery
JavaScript常见事件处理程序实例总结
Jan 05 Javascript
layui添加动态菜单与选项卡 AJAX请求的例子
Sep 25 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图片验证码制作实现分享(全)
2012/05/10 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
2015/06/17 PHP
在thinkphp5.0路径中实现去除index.php的方式
2019/10/16 PHP
多广告投放代码 推荐
2006/11/13 Javascript
jQuery之按钮组件的深入解析
2013/06/19 Javascript
jQuery链使用指南
2015/01/20 Javascript
jQuery拖拽插件gridster使用指南
2015/04/21 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
jQuery实现导航栏头部菜单项点击后变换颜色的方法
2017/07/19 jQuery
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
Vue+jquery实现表格指定列的文字收缩的示例代码
2018/01/09 jQuery
基于cropper.js封装vue实现在线图片裁剪组件功能
2018/03/01 Javascript
详解Vue打包优化之code spliting
2018/04/09 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
tracking.js页面人脸识别插件使用方法
2020/04/16 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
Vue.js中的组件系统
2019/05/30 Javascript
vuex的使用和简易实现
2021/01/07 Vue.js
[04:30]显微镜下的DOTA2第五期——拉比克
2013/09/26 DOTA
python学习之第三方包安装方法(两种方法)
2015/07/30 Python
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
python实现下载pop3邮件保存到本地
2018/06/19 Python
Python多进程multiprocessing、进程池用法实例分析
2020/03/24 Python
利用jupyter网页版本进行python函数查询方式
2020/04/14 Python
如何用css3实现switch组件开关的方法
2018/02/09 HTML / CSS
美国高街时尚品牌:OASAP
2016/07/24 全球购物
美国第一香水网站:Perfume.com
2017/01/23 全球购物
中国跨境电子商务网站:NewFrog
2018/03/10 全球购物
马来西亚在线购物:POPLOOK.com
2019/12/09 全球购物
黑猩猩商店:The Chimp Store
2020/02/12 全球购物
美国在线家具网站:GDFStudio
2021/03/13 全球购物
教你怎样写好自我评价
2013/10/05 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
2016年“抗战胜利纪念日”71周年校园广播稿
2015/12/18 职场文书
小学教代会开幕词
2016/03/04 职场文书
python运行脚本文件的三种方法实例
2022/06/25 Python