为了账号安全,请及时绑定邮箱和手机立即绑定

Jquery中click事件重复执行的问题

Jquery中click事件重复执行的问题

一只萌萌小番薯 2019-04-08 11:18:55
Jquery版本1.11.0问题:点击修改链接,在弹出的对话框中,点提交按钮,click事件会执行多次。而用原生js则没有问题。并且提交后,第二次提交后,多个数据都变成一个了。代码如下:点击了多少次修改,点提交时就会alert出多少个222222http://jsfiddle.net/D7eEd/出问题部分用原生js实现:http://jsfiddle.net/vowmmm/n5yzy/个人认为原因是:click事件里不能包含click事件?不知道是不是这样。为方便查看,附带整个文档Document*{margin:0;padding:0;}#table{border:1pxsolidgray;border-collapse:collapse;width:500px;}tr{height:30px;}th{border:1pxsolidgray;}td{border:1pxsolidgray;text-align:center;}tda{margin-right:5px;color:blue;text-decoration:none;}#popDiv,#editDiv{border:1pxsolidsilver;width:315px;padding:1px;margin-top:10px;position:absolute;left:38%;z-index:4;display:none;}.popp{height:30px;margin-top:20px;clear:both;}.popa{display:block;float:right;text-decoration:none;font-size:12px;}.pop.input{height:20px;line-height:20px;}/*#bottom{width:100%;height:30px;margin:0auto;}*/#sub{display:block;height:30px;margin:0auto;}.mask{background-color:#000;position:absolute;left:0;top:0;z-index:2;}姓名年龄职位工资操作张三23PHP79999修改李四21Java12000修改王五34Python29999修改赵六37Javascript65450修改close姓名:年龄:职位:工资://点击'修改'链接$('a.edit').click(function(){vararr=[];$(this).parent().siblings().each(function(){arr.push($(this).text());});$('#editDiv').show().find('p').each(function(i){$(this).find('input:text').val(arr[i]);});varaTr=$(this);$('#sub').click(function(){alert('2222222');vardata=[];$(this).prevUntil('a.close').each(function(){data.push($(this).find('input:text').val());});data.reverse();aTr.parent().siblings().each(function(i){$(this).text(data[i]);});$(this).parent().hide();$('div.mask').remove();});//原生JS实现点击,没有问题/*document.getElementById('sub').onclick=function(){alert('1111111');vardata=[];$(this).prevUntil('a.close').each(function(){data.push($(this).find('input:text').val());});data.reverse();aTr.parent().siblings().each(function(i){$(this).text(data[i]);});$(this).parent().hide();$('div.mask').remove();};*///添加遮罩层varmaskHeight=$(document).height();varmaskWidth=$(document).width();$('').appendTo($('body'));$('div.mask').css({'width':maskWidth,'height':maskHeight,'opacity':0.4});});$('a.close').click(function(){$(this).parent().hide();$('div.mask').remove();});
查看完整描述

2 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

已经找到原因了,我提供个方法吧:
$('#sub').unbind('click').click(function(){
...
});
每次绑定前先取消上次的绑定。
                            
查看完整回答
1 反对 回复 2019-04-08
  • 2 回答
  • 0 关注
  • 506 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信