使用livequery,我可以执行以下操作:
$(".focusable").livequery(function() {
$(this).focus();
});
我知道jQuery支持委托等的自定义函数,但是我没有看到任何让我认为jQuery可以执行livequery在这个例子中正在做的事情。
$("body").on("???", ".focusable", function() {
$(this).focus();
});
我希望这是有道理的。
答案 0 :(得分:4)
您可以使用DOMNodeInserted
事件:
$("body").on("DOMNodeInserted", ".focusable", function() {
$(this).focus();
});
IE8及更早版本不支持此功能:https://developer.mozilla.org/en/DOM/DOM_event_reference
答案 1 :(得分:0)
目前,标准jQuery不支持此功能。通常,要使用的jQuery事件是load
:
当load元素和所有子元素都有时,load事件被发送到元素 已完全装满。此事件可以发送到任何元素 与URL相关联:图像,脚本,框架,iframe和 窗口对象。
但是它不能与live
/ delegate
一起使用,最有可能on
:
注意:.live()和.delegate()方法不能用于检测 加载iframe的事件。加载事件未正确冒泡 父文档和event.target不是由Firefox,IE9或 Chrome,需要进行事件委派。
因此,在修复此问题之前,您必须坚持livequery
,他们显然采用了一种解决方法来实现这一目标。
有关详细信息,请参阅此处:
http://api.jquery.com/load-event/