javascript - Jquery中click事件重复执行的问题
PHP中文网
PHP中文网 2017-04-10 14:23:16
[JavaScript讨论组]

Jquery版本1.11.0
问题:点击修改链接,在弹出的对话框中,点提交按钮,click事件会执行多次。而用原生js则没有问题。
并且提交后,第二次提交后,多个数据都变成一个了。

代码如下:
点击了多少次修改,点提交时就会alert出多少个222222
http://jsfiddle.net/D7eEd/

出问题部分用原生js实现:
http://jsfiddle.net/vowmmm/n5yzy/

个人认为原因是:
click事件里不能包含click事件?不知道是不是这样。

为方便查看,附带整个文档




Document







    
姓名 年龄 职位 工资 操作
张三 23 PHP 79999 修改
李四 21 Java 12000 修改
王五 34 Python 29999 修改
赵六 37 Javascript 65450 修改

close

姓名:

年龄:

职位:

工资:

PHP中文网
PHP中文网

认证0级讲师

全部回复(8)
巴扎黑

已经找到原因了,我提供个方法吧:

$('#sub').unbind('click').click(function () {
    ...
});

每次绑定前先取消上次的绑定。

天蓬老师

你每次点击一个a.edit, 都会为#sub 重新绑定一个click事件, 搞不懂你为什么这么写,把#sub的click拿出来啊

巴扎黑

找了好久,发现原因应该是:

Click事件 进行了累加绑定,每当我调用一次时,他便增加一次绑定

按这个方法,确实解决了问题。不知道是否正确。

巴扎黑

click事件累加的问题

ringa_lee

like this...

$('#sub').off().click(function () {
    ...
});
PHP中文网

我也遇到这样的问题,因为每次让弹窗展示出来都会帮顶一次事件,这样累计下来事件会多次执行。
1.一种方法是弹窗隐藏的时候把弹窗销毁掉;
2.一种是把弹窗里面的事件绑定抽离出来,不要让弹窗每次显示的时候都执行click的绑定。
当然楼主的解决方案也不错。

PHP中文网

爱死你了 unbind

高洛峰

确实解决了 ,不错 ,这个问题困扰了好几天了。顶一个

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号