多种jQuery绑定事件的实现方式


Posted in Javascript onJune 13, 2016

最近发现jQuery一个对象的事件可以重复绑定多次,当事件触发的时候会引起代码多遍执行。

下面是一个click事件被重复绑定的示例:

function reg_button_click(){
 $("#button).click(function(){
 alert("button click");
 });
}
$(document).ready(function(){
 #重复注册3次
 reg_button_click();
 reg_button_click();
 reg_button_click();
 #触发的时候 出现3个alert
 $('#button').click();
});

下面给出解决方法:

对于需要重复绑定的场景,再事件注册时候考虑用先unbind 再bind的方法;或者先off 再on

function reg_button_click(){
 $("#button).unbind('click').bind('click',(function(){
 alert("button click");
 });
}
$(document).ready(function(){
 #重复注册3次
 reg_button_click();
 reg_button_click();
 reg_button_click();
 #触发的时候 出现3个alert
 $('#button').click();
});

那jQuery绑定事件的实现方式有哪些,下面就为大家分享jQuery绑定事件的方法,供大家参考,具体内容如下

<html>

<head>

<meta charset="utf-8" />

<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script><!--百度CDN-->

</head>

 

<body>

<input type="text"/>

<input type="button" value="button1"/>

<script>

$(function(){

 var text = $(":text");

 var button = $(":button");

 //调试器记录日志 console.log("message"); 如:火狐浏览器,打开FireBug(按F12)

 

 //触发单个事件:两种方式

 button.bind("mouseover",function(){

 console.log("移入");

 });

 button.bind({

 "mouseout": function(){

  console.log("移出");

 }

 });

 //多个事件:三个方式

 text.bind("dblclick blur",function(){

 console.log("双击或者失去焦点");

 });

 

 text.bind({

 "dblclick blur":function(){

  console.log("双击或者失去焦点");

 }

 });

 text.bind({

 "dblclick":function(){

  console.log("双击");

 },

 blur:function(){

  console.log("失去焦点");

 }

 });

 

 //取消事件

 text.unbind("dblclick"); //取消单个事件

 //text.unbind("dblclick blur"); //取消多个事件

 //text.unbind(); //取消全部事件

});

 

</script>

</body>

</html>

以上就是本文的全部内容,希望对大家学习jQuery程序设计有所帮助。

Javascript 相关文章推荐
javascript 对象定义方法 简单易学
Mar 22 Javascript
js字符编码函数区别分析
Dec 28 Javascript
javascript实现文本域写入字符时限定字数
Feb 12 Javascript
AngularJS学习第一篇 AngularJS基础知识
Feb 13 Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
Mar 10 Javascript
如何去除vue项目中的#及其ie9兼容性
Jan 11 Javascript
vue forEach循环数组拿到自己想要的数据方法
Sep 21 Javascript
vue改变对象或数组时的刷新机制的方法总结
Apr 24 Javascript
微信小程序上传文件到阿里OSS教程
May 20 Javascript
Emberjs 通过 axios 下载文件的方法
Sep 03 Javascript
解决layui富文本编辑器图片上传无法回显的问题
Sep 18 Javascript
vue脚手架项目创建步骤详解
Mar 02 Vue.js
JS Ajax请求如何防止重复提交
Jun 13 #Javascript
JavaScript判断微信浏览器实例代码
Jun 13 #Javascript
JavaScript判断是否是微信浏览器
Jun 13 #Javascript
JavaScript_object基础入门(必看篇)
Jun 13 #Javascript
js 连续赋值的简单实现
Jun 13 #Javascript
全面解析Bootstrap中Carousel轮播的使用方法
Jun 13 #Javascript
全面解析Bootstrap中tooltip、popover的使用方法
Jun 13 #Javascript
You might like
php开发文档 会员收费1期
2012/08/14 PHP
提高PHP编程效率的方法
2013/11/07 PHP
php生成excel列序号代码实例
2013/12/24 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
2014/05/04 PHP
php生成唯一的订单函数分享
2015/02/02 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
2019/03/18 PHP
Jquery带搜索框的下拉菜单
2013/05/06 Javascript
Node.js(安装,启动,测试)
2014/06/09 Javascript
js自定义鼠标右键的实现原理及源码
2014/06/23 Javascript
浅谈类似于(function(){}).call()的js语句
2015/03/30 Javascript
JSON格式的时间/Date(2367828670431)/格式转为正常的年-月-日 格式的代码
2016/07/27 Javascript
浅谈JS中的三种字符串连接方式及其性能比较
2016/09/02 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
2017/04/03 jQuery
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
原生JS实现瀑布流插件
2018/02/06 Javascript
Vue程序化的事件监听器(实例方案详解)
2020/01/07 Javascript
[02:40]2018年度DOTA2最佳新人-完美盛典
2018/12/16 DOTA
Python的设计模式编程入门指南
2015/04/02 Python
详解Django中的过滤器
2015/07/16 Python
详解python中的 is 操作符
2017/12/26 Python
Numpy 将二维图像矩阵转换为一维向量的方法
2018/06/05 Python
Python中shapefile转换geojson的示例
2019/01/03 Python
Python中的Cookie模块如何使用
2020/06/04 Python
Python获取excel内容及相关操作代码实例
2020/08/10 Python
Elasticsearch py客户端库安装及使用方法解析
2020/09/14 Python
Python利用socket模块开发简单的端口扫描工具的实现
2021/01/27 Python
html5 浏览器支持 如何让所有的浏览器都支持HTML5标签样式
2012/12/07 HTML / CSS
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
优纳科技软件测试面试题
2012/05/15 面试题
简历中个人自我评价范文
2013/12/26 职场文书
护士自我评价范文
2014/01/25 职场文书
经贸专业毕业生求职信范文
2014/05/01 职场文书
2014乡镇干部纪律作风整顿思想汇报
2014/09/13 职场文书
合同补充协议书
2016/03/24 职场文书
Nginx 反向代理解决跨域问题多种情况分析
2022/01/18 Servers
python playwright之元素定位示例详解
2022/07/23 Python