$(document).on("click", ".example", function (event) {
alert("test");
var id = 1;
$.ajax({
url: "update.php",
data: {
id: id,
},
type: "POST",
success: function (data) {
$("#result").html(data);
}
})
});
如果我删除此行...
success: function (data) {
$("#result").html(data);
}
......然后"测试"每次点击只会被提醒一次。
但每次点击我的.example
按钮时都会使用此行," test"在更多时间被提醒。
所以这意味着:
......等等。
我认为这是因为.example
按钮也是由Ajax创建的。
那么有可能以某种方式重置成功功能吗?
答案 0 :(得分:2)
Remove/Unbind
旧的监听器并添加新的:
$(document).on("click", ".example", function (event) {
将其更改为:
$(document).off("click", ".example").on("click", ".example", function (event) {
再试一次。
说明:问题是您的脚本会在每次成功的callacks上一次又一次地初始化。因此$(documeon("click", ".example", function (event) {nt).off("click", ".example")
将解除所有侦听器的绑定,并on("click", ".example", function (event) {
添加新的侦听器。
答案 1 :(得分:2)
这应该有帮助
$(document).unbind("click").on("click", ".example", function (event) {
//your code
});
取消绑定,使其仅附加一次
来自api.jQuery .bind()附带的事件处理程序可以 用.unbind()删除。在最简单的情况下,没有参数, .unbind()删除附加到元素的所有处理程序:
正如 charlietfl 的评论中所建议的那样,off
使用unbind
已被弃用。
答案 2 :(得分:2)