有没有办法在没有用户事件的情况下触发jQuery的live()或delegate()?

时间:2010-02-25 14:54:02

标签: javascript jquery

我正在尝试使用jQuery来轮询在jQuery对象之外创建的动态DOM节点(使用Google Maps API方法)。我可以通过例如将delegate()绑定到click事件来轻松完成此操作。但是,我需要轮询DOM,而不需要任何其他用户操作(用户不必单击),作为运行onload的函数的一部分。有谁知道如何实现这个目标?

编辑:我正在使用Maps API编写,在加载时添加一堆标记。我可以毫无问题地执行此操作,但我需要循环使用Maps API使用jQuery编写的HTML并附加子节点。 delegate()和live()可以这样,但我知道如何解雇delegate()或live()的唯一方法是将它绑定到用户事件。我试图在我的Maps API函数的每次迭代中触发像jQuery的委托之类的东西,而不需要用户做任何事情。

2 个答案:

答案 0 :(得分:3)

查看LiveQuery plugin。这是一个简单的使用示例:

$('table tr:even').livequery(function(){
    $(this).removeClass("odd");
    $(this).addClass("even");
});

此代码段将自动应用“偶数”类,并删除表格行动态上的任何“奇怪”类,因为新行已添加到表中。

答案 1 :(得分:0)

拨打一次电话:

setTimeout("doGoogleMapApiCall()", 5000);

..或多次:

setInterval("doGoogleMapApiCall()", 5000);

编辑:我认为您要找的是自定义活动?看看这里:http://www.reynoldsftw.com/2009/04/custom-events-in-jquery-open-doors-to-complex-behaviors/