通过AJAX调用,我将textarea的值发布到我的数据库。第一篇文章总是正确的。但是在我尝试发布另一篇帖子后,AJAX调用执行了两次。如果我在此之后再次发布,则AJAX调用将执行4次。它呈指数级增长。
这是我的代码:
$(".comment-box").on("keydown", function(e) {
e = e || event;
if (e.keyCode === 13 && !e.shiftKey) {
var message = $(".comment-box").val();
var id = $(".comment-box").attr("data-id");
$.ajax({
type: "post",
url: "../assets/js/ajax/comment-to-screen.php",
data: {
'message': message,
'id': id
},
success: function (data) {
$(".comment-box").val('');
$(".all-comments").append(data);
init();
return false;
}
});
e.preventDefault();
}
});
这包含在init()
函数
$(document).ready(function() {
init();
function init () {
// Here is the code to post with ajax
}
});
答案 0 :(得分:2)
在每个成功的帖子回调中,都会调用init。然后,Init将另一个处理程序附加到文本框中。
下次按Enter键时,两个事件处理程序将触发...等等
我认为你可以从成功处理程序中删除init调用