解决 Jquery 一个点击事件触发多次
1: 首先我们遇到的问题: 如下图
$("#save").click(function () {
var new_permission = transfer.getData('index'); //获取右侧数据
$.ajax({
type: 'POST',
url: '/system_save_permission/',
async: false,
data: {
'page_type': pageType_url,
'column_data': JSON.stringify(column_data),
'new_permission': JSON.stringify(new_permission),
},
success: function (data) {
$("#authority_modal > div > div > div.modal-header > button > span").trigger('click')
insert_alert(data['result'], data['info'], sel_alert_div, '', 3);
}
});
})
我们做了一个按钮提交的点击事件: 测试之后呢! 发现 只有按钮的 click 事件被触发了多次。。。
经过测试原来的代码是没有任何问题的,但是在查找问题的时候发现,点击保存 在点击确认框取消这个过程会让click在时间上有一个积累,也就是说你点击一次发送就触发一次click事件,就是你点击取消几次就会提交几次。这里很奇怪,明明没有触发#save绑定的click事件怎么会提交几次。这就是click事件在时间上的积累造成的。
解决方法:将
$("#save").click(function () {
这句代码修改为 $('#save').unbind('click').bind('click',function ()
可以完美解决 按钮重复提交的状况