2 回答

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊
使用事件委托,您只需在最外層父級(jí)上設(shè)置事件處理程序并處理那里的所有事件。在處理程序中,您可以測(cè)試event.target
以查看事件的源元素是什么,并且僅當(dāng)該元素是您想要的元素時(shí)才繼續(xù)。
這是一個(gè)click
事件示例:
document.querySelector(".parent").addEventListener("click", function(event){
? console.log("Either the parent or the child was clicked.");
? // Only react if the source of the event was the parent, not the child.
? if(event.target.classList.contains("parent")){
? ? ?alert("you clicked on the parent");
? }
});
<div>Click on both the parent and the child. Only the parent will perform the desired action.
? ? <div class="parent">
? ? ? I'm the parent
? ? ? ? <div class="child">
? ? ? ? ? ? I'm the child
? ? ? ? </div>
? ? </div>
</div>

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
最后,我解決問(wèn)題的方法是完全刪除 onleave 事件。這是造成大多數(shù)問(wèn)題的原因。
因此,現(xiàn)在在 onenter 上,我只是檢查 currentTarget 是否與之前訪問(wèn)過(guò)的 currentTarget 不同。如果是,則禁用先前訪問(wèn)的 currentTarget 的指示器,并激活新的 currentTarget 的指示器。
這實(shí)際上比我預(yù)期的要好,因?yàn)榧词鼓x開卡但沒(méi)有輸入新卡,該指示器也會(huì)保持不變。這樣您就可以隨時(shí)跟蹤您上次輸入的位置。
- 2 回答
- 0 關(guān)注
- 171 瀏覽
添加回答
舉報(bào)