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 序列化对象实现代码
Dec 18 Javascript
简单的jquery拖拽排序效果实现代码
Sep 20 Javascript
基于SVG的web页面图形绘制API介绍及编程演示
Jun 28 Javascript
window.onload追加函数使用示例
Mar 03 Javascript
JS 作用域与作用域链详解
Apr 07 Javascript
uploadify多文件上传参数设置技巧
Nov 16 Javascript
JavaScript中Object.prototype.toString方法的原理
Feb 24 Javascript
Bootstrap按钮组实例详解
Jul 03 Javascript
新手vue构建单页面应用实例代码
Sep 18 Javascript
React Native 使用Fetch发送网络请求的示例代码
Dec 02 Javascript
webpack+react+antd脚手架优化的方法
Apr 02 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
Jan 28 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
JS与PHP向函数传递可变参数的区别实例代码
2011/05/18 PHP
PHP中运用jQuery的Ajax跨域调用实现代码
2012/02/21 PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
2020/10/01 PHP
PHP-FPM和Nginx的通信机制详解
2019/02/01 PHP
checkbox 复选框不能为空
2009/07/11 Javascript
JavaScript打字小游戏代码
2011/12/26 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
2014/03/08 Javascript
jQuery实现带有洗牌效果的动画分页实例
2015/08/31 Javascript
jQuery自动完成插件completer附源码下载
2016/01/04 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
最常用的jQuery表单验证(简单)
2017/05/23 jQuery
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
JS+WCF实现进度条实时监测数据加载量的方法详解
2017/12/19 Javascript
JavaScript中this关键字用法实例分析
2018/08/24 Javascript
如何在Vue中使用CleaveJS格式化你的输入内容
2018/12/14 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
[08:56]DOTA2-DPC中国联赛2月23日Recap集锦
2021/03/11 DOTA
Python、PyCharm安装及使用方法(Mac版)详解
2017/04/28 Python
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
pycharm创建scrapy项目教程及遇到的坑解析
2019/08/15 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
python读取图片的几种方式及图像宽和高的存储顺序
2020/02/11 Python
使用Django xadmin 实现修改时间选择器为不可输入状态
2020/03/30 Python
Python中zip函数如何使用
2020/06/04 Python
CSS3实现曲线阴影和翘边阴影
2016/05/03 HTML / CSS
浅谈CSS3动画的回调处理
2016/07/21 HTML / CSS
美国眼镜在线零售商:Dualens
2019/12/07 全球购物
餐厅考勤管理制度
2014/01/28 职场文书
酒店餐厅2014重阳节活动策划方案
2014/09/16 职场文书
2014年学校教学工作总结
2014/12/06 职场文书
2019年大学推荐信
2019/06/24 职场文书
Mysql排序的特性详情
2021/11/01 MySQL
Dashboard管理Kubernetes集群与API访问配置
2022/04/01 Servers
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解
2022/04/07 Servers
TypeScript实用技巧 Nominal Typing名义类型详解
2022/09/23 Javascript