使用jQuery的.live()方法添加类addClass

3

我目前正在使用.load()函数动态加载内容到一个容器div中。 要加载的内容是表格数据,我想要对它进行斑马线条纹处理。 在静态页面上进行斑马线条纹很容易,但我不知道如何为加载到容器div中的新内容进行斑马线条纹处理。

以下是我试图操作的代码:

$("table tbody tr:even").live("EVENT", function(){
  $(this).addClass("alt");
});

“EVENT”不应该是“click”或“mouseover”,而应该是“onload”或类似的事件。有没有方法可以实现这个需求?谢谢您的建议!
~Jared
4个回答

7
你应该在load()的回调函数中运行斑马线代码。
$("#myDiv").load( "/somecontroller/someaction", { data: value }, function() {
    $("#myDiv").find( "table tbody tr:even" ).addClass( "alt" );
});

感谢分享这个解决方案,tvanfosson!这很管用。 - user196986

0

要动态地向表中添加数据,您必须使用另一段代码。不是吗? 在该函数内,在将数据加载到表中后,将CSS类添加到行中。 在该函数中使用以下方法:

$("table tbody tr:even").removeClass("alt").addClass("alt");

0

作为对tvanfosson答案的扩展(在这种情况下是您最好的选择),live()函数目前仅支持某些事件。这是来自http://api.jquery.com/文档的:

可能的事件值:click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,keydown,keypress,keyup

当前不支持:blur,focus,mouseenter,mouseleave,change,submit


Bartek,你的评论很有价值。谢谢。 - user196986

-1
我这样做是为了使用jQuery 1.4.2触发事件。 $("body").live("mousemove", function(){ $(".zebra tr:nth-child(even)").addClass("alt"); });

为什么我们不直接重新加载页面呢?那会更酷 </讽刺> - José Tomás Tocino

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接