代码之家  ›  专栏  ›  技术社区  ›  zod

如何调用双音分隔上的鼠标悬停函数

  •  1
  • zod  · 技术社区  · 15 年前

    我将动态分隔作为行:

    <table border=1><tr><td>
    <div id='div1'>fgg</div>
    <div id='div2'>dfgdfg</div>
    <div id='div3'>vcbcvb</div>
    <div id='div4'>sdfsdf</div>
    </td></tr></table>
    

    如何在每个DIV的mouseover上调用jquery函数? 这些div是动态的,可以改变数字。

    4 回复  |  直到 11 年前
        1
  •  3
  •   sworoc    15 年前
    $("td div").live("mouseover", function() {
     //mouseover code here
    });
    

    我建议为您的沙发床使用一个类,并使用一个选择器: $(".rows") 或者类似的。但是,上面的内容适用于您给出的标记。

    如果必须使用ID ,这将允许您按ID添加它。请记住,当您添加新项目时,必须为ID运行此代码(使原始问题的动态部分失效)。

    $("#mydivid").mouseover(function() {
      //mouseover code here
    });
    

    你可以在这样的列表中使用:

    var divs = ["mydiv1", "mydiv2", "mydiv3"];
    $(divs).each(function() {
      $("#" + this).mouseover(function() {
        //mouseover code here
      });
    });
    

    这真是个糟糕的方法,我 强烈地 建议改用类。

        2
  •  2
  •   John Strickler    15 年前

    使用事件委托,或者 .live() .delegate() 将事件绑定到动态创建的元素。

        3
  •  0
  •   kobe    15 年前

    另一个简单的方法是给所有的div赋予相同的类名。 您可以按类名而不是ID钩住click事件。在代码中,您还可以使用“this”关键字引用当前的DIV块。

        4
  •  0
  •   dmackerman    15 年前

    除非由于某种原因,您不能为每个DIV使用重复的类名,否则 live() 方法就是方法。不过,使用类会更有效率。