单次点击多次提交ajax请求处理,解决点击事件重复监听

$("#addNote").on("click",function () {
    $.ajax({
        url: location,
        type: "put",
        data:{
            "title":$("#artcleTitle").v
            "content":$("#mainArticle")
        },
        dataType:"json",
        success:function (result) {
            console.log(result);
        }
    });
});

在点击事件里面直接套用ajax请求,这样造成的后果就是,点击第一次就提交一次,点击第两次提交两次,点击第三次提交三次请求,如此类推。

原因是因为在点击事件内绑定了ajax请求,造成重复绑定,事件重复监听。

解决办法也简单,只要在绑定点击事件之前取消绑定即可,代码如下

$("#addNote").off("click").on("click",function () {

});
$("#addNote").off("click").on("click",function () {
    $.ajax({
        url: location,
        type: "put",
        data:{
            "title":$("#artcleTitle").v
            "content":$("#mainArticle")
        },
        dataType:"json",
        success:function (result) {
            console.log(result);
        }
    });
});

为了更直观的看见效果,做了demo测试。

//js
$("#button1").on("click",function () {
    $("#button2").off("click").on("click",function () {
        alert("222"); 
    });
    $("#button3").on("click",function () {
        alert("333"); 
    });                 
});

//html

    
    
    

你可能感兴趣的:(单次点击多次提交ajax请求处理,解决点击事件重复监听)