多种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 相关文章推荐
跨浏览器开发经验总结(三)   警惕“IE依赖综合症”
May 13 Javascript
jquery关于页面焦点的定位(文本框获取焦点时改变样式 )
Sep 10 Javascript
表单JS弹出填写提示效果代码
Apr 16 Javascript
基于json的jquery地区联动效果代码
Jul 06 Javascript
提高jQuery性能的十个诀窍
Nov 14 Javascript
js 去除字符串第一位逗号的方法
Jun 07 Javascript
简单谈谈javascript代码复用模式
Jan 28 Javascript
javascript无刷新评论实现方法
May 13 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
Dec 31 Javascript
JavaScript递归函数定义与用法实例分析
Jan 24 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
Oct 28 Javascript
node.js使用 http-proxy 创建代理服务器操作示例
Feb 10 Javascript
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
十大催泪虐心动漫电影,有几部你还没看
2020/03/04 日漫
PHP编程与应用
2006/10/09 PHP
PHP服务器页面间跳转实现方法
2012/08/02 PHP
如何在PHP中使用正则表达式进行查找替换
2013/06/13 PHP
基于递归实现的php树形菜单代码
2014/11/19 PHP
PHP查看当前变量类型的方法
2015/07/31 PHP
Laravel validate error处理,ajax,json示例
2019/10/25 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
2020/06/06 PHP
JavaScript入门教程(7) History历史对象
2009/01/31 Javascript
让FireFox支持innerText的实现代码
2009/12/01 Javascript
JS 无限级 Select效果实现代码(json格式)
2011/08/30 Javascript
jQuery拖拽div实现思路
2014/02/19 Javascript
node.js中使用socket.io的方法
2014/12/15 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
Javascript实现Array和String互转换的方法
2015/12/21 Javascript
JavaScript实现倒计时跳转页面功能【实用】
2016/12/13 Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
2017/10/25 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
使用react context 实现vue插槽slot功能
2019/07/18 Javascript
js实现倒计时秒杀效果
2020/03/25 Javascript
Vue+penlayers实现多边形绘制及展示
2020/12/24 Vue.js
JavaScript实现点击切换验证码及校验
2021/01/10 Javascript
Python类属性的延迟计算
2016/10/22 Python
python使用itchat库实现微信机器人(好友聊天、群聊天)
2018/01/04 Python
详解python 爬取12306验证码
2019/05/10 Python
python自制包并用pip免提交到pypi仅安装到本机【推荐】
2019/06/03 Python
HTML+CSS+JavaScript实现图片3D展览的示例代码
2020/10/12 HTML / CSS
2019史上最全Database工程师题库
2015/12/06 面试题
Java的类与C++的类有什么不同
2014/01/18 面试题
关于工资低的辞职信
2014/01/14 职场文书
广播节目策划方案
2014/05/23 职场文书
电子专业毕业生自荐信
2014/05/25 职场文书
物业总经理助理岗位职责
2014/06/29 职场文书
CSS作用域(样式分割)的使用汇总
2021/11/07 HTML / CSS
mysql序号rownum行号实现方式
2022/12/24 MySQL