2017-12-27 76 views
0

我想通過addEventListener添加一些代碼。我會使用DOMContentLoaded,但我試圖選擇的ID在頁面加載時不可用。我可以使用mouseover,但它可以隨時迭代代碼。我也可以使用click事件,但我不希望它在點擊時顯示,但只是在顯示時顯示。我該如何處理?通過addEventListener添加代碼,不需要循環mouseover

document.addEventListener("mouseover", function(event){ 
    document.querySelector("#id").insertAdjacentHTML('afterend', '<div>asd</div>'); 
}); 
+0

jQuery是您在此項目上的可接受選項嗎? – JasonB

+0

@jasonB如果是的話,他會添加[jquery]標籤 –

+0

這是可以接受的。 – servitus

回答

0

您需要委託

var yourSpecificId = "some-id"; 

document.addEventListener("mouseover", function(event){ 
    if (event.target.id == yourSpecificId) //only when the id of the mouseover element is matching yourSpecificId 
    { 
    //code you want to execute 
    } 
}); 
0

我會建議一個Mutation Observer。這看起來很難實現,但它很容易。您可以提供回調函數,然後使用快速的if語句來檢查新添加的元素是否具有正確的id。如果是這樣,運行你的代碼並斷開觀察者。

如果您發佈了一個有關何時添加元素以及需要運行的功能的工作示例,那將更容易爲您提供幫助。

閱讀此博客:https://davidwalsh.name/mutationobserver-api