2015-04-05 37 views
0

我使用了一個插件,它將在我的DOM中創建新元素,但不幸的是,插件初始化後沒有回調。所以我正在考慮捕獲新創建的DOM並執行某些功能。聆聽未來要素的最佳方式是什麼?檢測未來元素是否存在並執行某些操作

我已經試過2種方法

  1. 使用的setTimeout 這種方法的缺點是,它是非常危險的假設每個用戶將能夠開始使用相同的加載時間插件。

  2. 使用livequery插件(https://github.com/brandonaaron/livequery) 這項工作,但表現不佳。在我抓住新的元素之後,它仍然會運行。

+0

您是否想簡單地將處理函數附加到尚未創建的DOM元素上的事件上,例如在點擊或類似事物上做些什麼? – JohnIdol 2015-04-05 13:44:39

+0

@JohnIdol可以使用on()完​​成,但在我的情況下,我必須做其他的事情。 – 2015-04-05 13:45:11

+0

所以你想檢測新元素何時被附加到DOM,是否正確? – JohnIdol 2015-04-05 13:46:10

回答

2

我懷疑你使用的是不具有像回調,但如果你真的想檢查元素是否是DOM中,您可以選擇該元素的插件(例如,通過ID /班)並檢查它是否已經存在:

function checkIfThere() { 
    if ($('.yourEl').length > 0) console.log("There it is!"); 
    else setTimeout(checkIfThere, 100); // recall the function until it is in the DOM 
}; 

用這種方式,你指定你的每超時未加載的元素重新調用的功能,直到它。

+0

嘿,這是一個聰明的黑客!感謝這! – 2015-04-05 13:52:39

+0

@JamesLemon很樂意幫忙! – supersize 2015-04-05 13:54:20

相關問題