如何模仿jQuery插件LiveQuery?

我在一个我无法修改的站点框架内工作。 此框架在document.ready()之后的某个时刻向DOM添加了一个文本框。 我想给这个文本框重点。

jQuery的livedelegateon是不合适的,因为它们需要一个事件作为触发器。 我找不到相当于仅将项目添加到页面的事件。

有LiveQuery,但框架不允许我加载它。

有没有办法模拟LiveQuery或有人能想到的更好的替代方案? 我希望能够做到:

http://jsfiddle.net/psJmx/1/

 $(document).ready(function() { //create an input in the future setTimeout('insertInput()', 1200); //give that input focus when it is added $('#foo').live('load', function() { $(this).focus(); }); }); function insertInput() { $('body').append(''); } 

这是给你的新jsfiddle ……这是你的意思吗? http://jsfiddle.net/QsbU4/3/我刚改变了你的insertInput函数。 你不再需要live部分。

作为一个说明,我知道轮询是一种糟糕的方式来做到这一点,但我有限制工作。 我无法控制插入元素的js,我只能使用jQuery 1.4.2。

我最终依靠民意调查了。 这就是我选择这样做的方式。 我给出了最大的尝试次数和合理的轮询时间,这样我就不会在页面上乱窜了。 如果元素在前三秒内没有出现,我放弃了。

 //poll for appearance of element var attempts = 10; var pollTime = 300; modifyTree(); function modifyTree() { if ($('#foo').length > 0) { //do something to foo } else { //continue polling for element if (attempts--) { setTimeout('modifyTree()', pollTime);} } }