美文网首页
前端的坑

前端的坑

作者: 赵佳辰 | 来源:发表于2017-08-16 17:24 被阅读0次

    事件重复绑定##

    在组件的事件回调里调用request,会引发虚拟dom的刷新,但前端dom是不刷新的。这样后端的组件事件从新绑定到组件的时候就会发生重复绑定

        $("button[role='test']").on("click", e => {
            axios.post("/tests", $("form").serialize()).then(result => {
                console.log(result);
            }).catch(error => {
                console.error(error);
            });
        });
    

    在点击按钮的时候,第一次会回调一次、第二次会回调两次、。。。
    解决方法:在做on绑定之前,先off掉之前绑定的事件回调

        $("button[role='test']").off("click").on("click", e => {
            axios.post("/tests", $("form").serialize()).then(result => {
                console.log(result);
            }).catch(error => {
                console.error(error);
            });
        });
    

    jquery说1.8版本之后就不需要做off了,还删除了detach、unbind等函数,我有一句mmp不是当讲不当讲。

    总之jquery是把双刃剑,使用时需小心,涉及ajax、event等的内部逻辑,一定要去MDN上好好看下文档。

    相关文章

      网友评论

          本文标题:前端的坑

          本文链接:https://www.haomeiwen.com/subject/ywoirxtx.html