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 控制CSS样式表
Aug 20 Javascript
构造函数+原型模式构造js自定义对象(最通用)
May 12 Javascript
jquery处理json对象
Nov 03 Javascript
node.js中的fs.fchmod方法使用说明
Dec 16 Javascript
AngularJS实现表单验证
Jan 28 Javascript
js限制input标签中只能输入中文
Jun 26 Javascript
基于BootstrapValidator的Form表单验证(24)
Dec 12 Javascript
vue数字类型过滤器的示例代码
Sep 07 Javascript
JS实现非首屏图片延迟加载的示例
Jan 06 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
Mar 14 Javascript
基于JS实现一个随机生成验证码功能
May 29 Javascript
vue3 自定义图片放大器效果的示例代码
Jul 23 Vue.js
详解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
BBS(php &amp; mysql)完整版(七)
2006/10/09 PHP
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
如何修改和添加Apache的默认站点目录
2013/07/05 PHP
php5.3 goto函数介绍和示例
2014/03/21 PHP
PDO的安全处理与事物处理方法
2016/10/31 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
php中pcntl_fork创建子进程的方法实例
2019/03/14 PHP
浅谈Javascript嵌套函数及闭包
2010/11/09 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
2015/08/19 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
2016/12/21 Javascript
javascript计算对象长度的方法
2017/10/25 Javascript
js实现图片放大并跟随鼠标移动特效
2019/01/18 Javascript
Node爬取大批量文件的方法示例
2019/06/28 Javascript
在 Vue 中编写 SVG 图标组件的方法
2020/02/24 Javascript
vue实现简单加法计算器
2020/10/22 Javascript
在vue中给后台接口传的值为数组的格式代码
2020/11/12 Javascript
微信小程序实现音乐播放页面布局
2020/12/11 Javascript
python实现简单温度转换的方法
2015/03/13 Python
Ubuntu下使用python读取doc和docx文档的内容方法
2018/05/08 Python
Python 读取WAV音频文件 画频谱的实例
2020/03/14 Python
HTML5 和小程序实现拍照图片旋转、压缩和上传功能
2018/10/08 HTML / CSS
戴森美国官网:Dyson美国
2016/09/11 全球购物
Expedia丹麦:全球领先的旅游网站
2018/03/18 全球购物
业务代表的岗位职责
2013/11/16 职场文书
小学英语课后反思
2014/04/26 职场文书
关于工作经历的证明书
2014/10/11 职场文书
先进党组织事迹材料
2014/12/26 职场文书
聋哑人盗窃罪辩护词
2015/05/21 职场文书
2019年让高校“心动”的自荐信
2019/03/25 职场文书
有关信念的名言语录集锦
2019/12/06 职场文书
浅谈PostgreSQL表分区的三种方式
2021/06/29 PostgreSQL
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python
使用 MybatisPlus 连接 SqlServer 数据库解决 OFFSET 分页问题
2022/04/22 SQL Server
Spring Data JPA框架Repository自定义实现
2022/04/28 Java/Android
TaiShan 200服务器安装Ubuntu 18.04的图文教程
2022/06/28 Servers