事件重復(fù)綁定##
在組件的事件回調(diào)里調(diào)用request弄兜,會引發(fā)虛擬dom的刷新萝挤,但前端dom是不刷新的蹂窖。這樣后端的組件事件從新綁定到組件的時候就會發(fā)生重復(fù)綁定
$("button[role='test']").on("click", e => {
axios.post("/tests", $("form").serialize()).then(result => {
console.log(result);
}).catch(error => {
console.error(error);
});
});
在點擊按鈕的時候猜年,第一次會回調(diào)一次、第二次會回調(diào)兩次疾忍、乔外。。一罩。
解決方法:在做on綁定之前杨幼,先off掉之前綁定的事件回調(diào)
$("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等函數(shù)差购,我有一句mmp不是當(dāng)講不當(dāng)講。
總之jquery是把雙刃劍汉嗽,使用時需小心欲逃,涉及ajax、event等的內(nèi)部邏輯饼暑,一定要去MDN上好好看下文檔稳析。