一次点击事件,触发两次异步请求,导致数据库存入了相同的两条记录
起因:在异步请求中,点击事件点击一次,结果触发了两次相同的异步请求,数据库也存入了两条相同记录
百度:首先是阻止事件冒泡: event.preventDefault(); 无效
其次,因为元素是动态生成的,所以点击事件运用了JQuery里面的on()方法,绑定在body上面;就百度了
博客利用on和off方法编写高效的js代码知道了很多在dom对象删除以后,其声明的绑定在window上的事件还一直存 在,导致相同的功能代码执行了几次。故使用之前要清理掉body上绑定的click事件,利用了jQuery里面off()方法。$('body').off('click').on('click','selector',function(){}); 无效
最后 利用 stopImmediatePropagation() 成功解决
需要弄清楚的知识点是事件冒泡和事件捕获;
以下为百度到的参考笔记:
事件冒泡: