2015-04-05 69 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

相关问题