jQuery-执行jquery ajax 多次请求

jQuery-执行jquery ajax 多次请求

瑾兮 发布于 2017-06-18 字数 339 浏览 1204 回复 4

$("#lrc-form").delegate("button", "click", function (event) {})

用delegate 去捕获事件,然后点击按钮,第一次,1次请求,第二次,2次请求,第三次,4次请求……

为什么会这次?

每次请求,我会将 #lrc-form 中的HTML 重新更新,即html()。

但如果在这个事件中不是 ajax,就没会执行一次, 换成 ajax ,次数就开始累加了。

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

虐人心 2017-10-17 4 楼

修改一下代码,看你的代码是否在事件成功以后进行解绑了,上面现象有可能是你没解绑造成的事件累加了。给你提供2种方法:

//方法一:绑定前先把原来的 click 解绑,再绑定新动作
$('#buttonId').unbind('click');
$('#buttonId').click(function() {
//逻辑处理
});

//方法二:在click里面定义,执行完之后解绑

$('#buttonId').click(function() {
//逻辑处理
$('#buttonId').unbind('click');
});

甜柠檬 2017-10-14 3 楼

根据分析您的绑定是动态绑定的,你点击事件中重复给Button绑定了事件。

最好是在绑定事件之前先unbind事件,再绑定一下。防止多次绑定。

瑾兮 2017-09-15 2 楼

请先unbind您的事件,然后再添加事件,您这个问题很可能是由于您多次绑定事件造成的,最好的解决方法是,先卸载事件再绑定。

清晨说ぺ晚安 2017-07-25 1 楼

在使用ajax像服务器提交数据的时候,最好为此次提交添加一个保护层代码:
在body中添加一个隐藏输入域:
<input type="hidden" value="1" id="submit_status" readonly/>
JS代码: