前端的坑

事件重复绑定##

在组件的事件回调里调用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上好好看下文档。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 嗯,我也只是刚入了一年前端的技术小白,大牛可以绕行,我只是想给还准备踏入这一行或者犹犹豫豫的人一些建议或者忠告。 ...
    西西里的姑娘阅读 1,690评论 2赞 3
  • 1、 jQuery 能做什么? jquery是一个丰富的js库,内部对js的很多复杂的方法进行了封装和加工,比如j...
    zh_yang阅读 1,556评论 6赞 13
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,310评论 0赞 1
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,544评论 0赞 2
  • 1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined、Nul...
    极乐君阅读 5,944评论 0赞 106

友情链接更多精彩内容