关于事件触发多次产生的BUG问题
来源:互联网 发布:字体秀下载软件 编辑:程序博客网 时间:2024/06/05 02:07
先看一段简单的html+js脚本
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无标题文档</title><script type="text/javascript" src="js/jquery-easyui-1.2.6/jquery-1.7.2.min.js"></script><link rel="stylesheet" type="text/css" href="js/jquery-easyui-1.2.6/themes/default/easyui.css" /><link rel="stylesheet" type="text/css" href="js/jquery-easyui-1.2.6/themes/icon.css" /><script type="text/javascript" src="js/jquery-easyui-1.2.6/jquery.easyui.min.js"></script><script type="text/javascript" src="js/jquery-easyui-1.2.6/locale/easyui-lang-zh_CN.js"></script><script type="text/javascript">$(function() { $("input[name=bind]").click(function() { $("#one").click(function() {alert("aaa");}); });});</script><style>div {border:1px solid red;width:100px;height:100px;}</style></head><body><div id="test"><div id="one">111111111111</div> <br /><input type="button" value="给DIV one注册点击事件" name="bind" /></div></body></html>
当点击一次"给DIV one注册点击事件"时候,在点击div one点击会被触发一次,当多次给div one注册点击事件的时候,点击事件会注册多次。
这也就是事件会触发多次的原因,应该是注册多次。消除注册多次的实现用jquery很简单,只需要:
$("#one").unbind("click"); 即可!
测试页面如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无标题文档</title><script type="text/javascript" src="js/jquery-easyui-1.2.6/jquery-1.7.2.min.js"></script><link rel="stylesheet" type="text/css" href="js/jquery-easyui-1.2.6/themes/default/easyui.css" /><link rel="stylesheet" type="text/css" href="js/jquery-easyui-1.2.6/themes/icon.css" /><script type="text/javascript" src="js/jquery-easyui-1.2.6/jquery.easyui.min.js"></script><script type="text/javascript" src="js/jquery-easyui-1.2.6/locale/easyui-lang-zh_CN.js"></script><script type="text/javascript">$(function() { $("input[name=bind]").click(function() { $("#one").click(function() {alert("aaa");}); }); $("input[name=remove]").click(function() { $("#one").unbind("click"); });});</script><style>div {border:1px solid red;width:100px;height:100px;}</style></head><body><div id="test"><div id="one">111111111111</div> <br /><input type="button" value="给DIV one注册点击事件" name="bind" /><input type="button" value="给DIV one解除点击事件" name="remove" /></div></body></html>
0 0
- 关于事件触发多次产生的BUG问题
- 关于键盘触发事件和屏幕触发事件的问题
- 关于键盘触发事件和屏幕触发事件的问题
- js点击事件多次触发问题
- FileSystemWatcher事件多次触发的解决方法
- 解决FileSystemWatcher事件多次触发的方法
- FileSystemWatcher事件多次触发的解决方法
- FileSystemWatcher事件多次触发的解决方法
- FileSystemWatcher触发多次Change事件的解决办法
- UIButton事件防止多次触发的写法
- FileSystemWatcher事件多次触发的解决方法
- FileSystemWatcher触发多次Change事件的解决办法
- mouseover多次触发事件
- 将需要人为触发的事件放在定时器或者循环中,程序有可能产生Bug
- 关于表单提交按钮多次点击多次触发的解决方法
- jQuery给一个元素绑定事件前,一次点击会多次触发的问题所在
- js函数节流 函数去抖来解决多次触发事件的问题
- 避免resize多次触发执行的问题
- 还有一种情况可能是,jar包重复了
- Ubuntu安装mysql 及开启远程连接
- openssl手工生成证书-xgh
- 同步请求和异步请求的区别
- vs2005远程调试
- 关于事件触发多次产生的BUG问题
- R in Business Intelligence
- Oracle锁3:DDL锁
- C++中引用的使用&
- IOS http请求的get 和 post的请求的区别
- linux 批量转换UTF8到GB2312并处理UTF8的BOM标记
- win7生成生成Detours.lib以及简单使用实例
- django+nginx+supervisor+gunicorn+gevent 网站部署
- java中HashMap详解