jQuery .live()和Document ready

时间:2009-11-04 16:21:16

标签: jquery

我正在尝试使用.live()设置CSS样式。 CSS功能:

$(".data tr:odd").addClass("evenrows"); 

有没有办法在文档准备就绪时自动发生这种情况,但是对于未来的元素仍然会发生?我在页面上有一个重新排序表的ajax事件。我需要这些新创建的行来应用.addClass。

提前致谢。

3 个答案:

答案 0 :(得分:5)

您可以使用Livequery plugin。它将自身绑定到DOM突变事件以跟踪DOM中的更改,并重新绑定并重新执行附加到它们的代码,例如:

$(".data tr:odd").livequery(function(){
   $(this).addClass("evenrows");
});

答案 1 :(得分:1)

我们已经通过挂钩Ajax事件代理并在那里做任何我们想做的事来完成了这个。请在此处查看“完整”:http://docs.jquery.com/Ajax/jQuery.ajax#options

您可以使用Live将任何事件处理程序附加到这些新行。请参阅:http://docs.jquery.com/Events/live#typefn

答案 2 :(得分:0)

现在我们的JavaScript正在设置一个Global ajax调用函数,它接受所需的参数。使用具有扩展参数的模板函数可以使您想要进行的更改可以消除任何不必要的重复代码,并为更易于管理的代码打开可能性。

示例:

GlobalObject.AjaxFunction(sUrl, SData, fnOnSuccess, fnOnError, oExtension)
{
   //Set up Ajax process

   // check type of extension as a function
   if (typeof oExtension === 'function')
   {
      oExtension();
   }
}

这将使您的代码在ajax处理后具有通用可用性。

希望这有助于满足您的需求,如果我不太明白评论让我知道!