【问题标题】:addClass using .live() with jQueryaddClass 使用 .live() 和 jQuery
【发布时间】:2009-11-04 18:28:17
【问题描述】:

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

这是我尝试使用的代码:

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

“事件”不应该是"click",或"mouseover",而是“onload”或类似的东西。有没有办法做到这一点?感谢您的建议!

~贾里德

【问题讨论】:

    标签: jquery callback live onload addclass


    【解决方案1】:

    您应该只在 load() 的回调函数中运行斑马条纹代码。

    $("#myDiv").load( "/somecontroller/someaction", { data: value }, function() {
        $("#myDiv").find( "table tbody tr:even" ).addClass( "alt" );
    });
    

    【讨论】:

    • 感谢分享这个解决方案,tvanfosson!这样就行了。
    【解决方案2】:

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

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

    目前不支持:blur、focus、mouseenter、mouseleave、change、submit

    【讨论】:

    • 很好的补充,Bartek。谢谢。
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      我这样做是为了用 jquery 1.4.2 触发事件

      $("body").live("mousemove", function(){ $(".zebra tr:nth-child(even)").addClass("alt"); });

      【讨论】:

      • 我们为什么不继续重新加载页面呢?那会更酷
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多