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全局事件ajaxStart为特定请求实现提示效果的代码
Dec 30 Javascript
jquery获取下拉列表的值为null的解决方法
Mar 18 Javascript
禁止空格提交表单的js代码
Nov 17 Javascript
Jquery中children与find之间的区别详细解析
Nov 29 Javascript
JavaScript日期类型的一些用法介绍
Mar 02 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
Apr 06 Javascript
JavaScript实现快速排序的方法分析
Jan 10 Javascript
vue新vue-cli3环境配置和模拟json数据的实例
Sep 19 Javascript
javascript实现5秒倒计时并跳转功能
Jun 20 Javascript
推荐几个不错的console调试技巧实现
Dec 20 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
Mar 16 Javascript
24个ES6方法解决JS实际开发问题(小结)
May 31 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 ss7.5的数据调用 (笔记)
2010/03/08 PHP
php数组的概述及分类与声明代码演示
2013/02/26 PHP
PHP 下载文件时自动添加bom头的方法实例
2014/01/10 PHP
解密ThinkPHP3.1.2版本之模板继承
2014/06/19 PHP
PHP jQuery+Ajax结合写批量删除功能
2017/05/19 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
如何直接访问php实例对象中的private属性详解
2017/10/12 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
用roll.js实现的图片自动滚动+鼠标触动的特效
2007/03/18 Javascript
比Jquery的document.ready更快的方法
2010/04/28 Javascript
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
jQuery中常用的遍历函数用法实例总结
2015/09/01 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
2015/10/08 Javascript
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
[01:12:44]VG vs Mineski Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
跟老齐学Python之永远强大的函数
2014/09/14 Python
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
Pycharm学习教程(1) 定制外观
2017/05/02 Python
Python中关于Sequence切片的下标问题详解
2017/06/15 Python
python3实现逐字输出的方法
2019/01/23 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
Python 使用指定的网卡发送HTTP请求的实例
2019/08/21 Python
Tensorflow轻松实现XOR运算的方式
2020/02/03 Python
python os模块常用的29种方法使用详解
2020/06/02 Python
HTML5拖放效果的实现代码
2016/11/17 HTML / CSS
详解HTML5中的picture元素响应式处理图片
2018/01/03 HTML / CSS
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
美术教师岗位职责
2014/03/18 职场文书
应届毕业生自荐书
2014/06/18 职场文书
劳模事迹材料范文
2014/12/24 职场文书
护士2015年终工作总结
2015/04/29 职场文书
小学运动会通讯稿
2015/07/18 职场文书
浅谈Python3中datetime不同时区转换介绍与踩坑
2021/08/02 Python
win7配置本地ftp服务器的图文教程
2022/08/05 Servers