jQuery的on()是否支持这种livequery功能?

时间:2012-03-13 20:50:04

标签: jquery

使用livequery,我可以执行以下操作:

$(".focusable").livequery(function() {
   $(this).focus();
});

我知道jQuery支持委托等的自定义函数,但是我没有看到任何让我认为jQuery可以执行livequery在这个例子中正在做的事情。

$("body").on("???", ".focusable", function() {
   $(this).focus();
});

我希望这是有道理的。

2 个答案:

答案 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/