单次点击多次提交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
<body>
    <button type="button" id="button1">button1</button>
    <button type="button" id="button2">button2</button>
    <button type="button" id="button3">button3</button>
</body>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,896评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,180评论 25 708
  • 给未来媳妇的信,youni首发第七篇,新的一年来了,真的来了,来的那么平静,又觉得那么快,前几天还觉得2014年还...
    小思设计阅读 1,076评论 0 2
  • 我一直不知道,如何甄别人的好坏,很难一下子通过肉体去穿透人心,很难看破人们的演技。 我以前有一个朋友,他对我说,恋...
    沉香红阅读 662评论 8 17
  • 【11月19日 323/3650 践行结果检视】 1,【晨间日记、每日要事、今日检视】——心得:全勤,今日吃青蛙*...
    佩娜阅读 520评论 4 5