我有这个reqular ul>李结构
<ul class='compare'>
<li>Level 1
<ul>
<li>Level 2</li>
<li>Level 2</li>
<li>Level 2</li>
<li>Level 2</li>
</ul>
</li>
<li>Level 1
<ul>
<li>Level 2</li>
<li>Level 2</li>
<li>Level 2</li>
<li>Level 2</li>
</ul>
</li>
<li>Level 1
<ul>
<li>Level 2</li>
<li>Level 2</li>
<li>Level 2</li>
<li>Level 2</li>
</ul>
</li>
</ul>
我使用$("ul.compare > li").live(...);
将鼠标事件分配给ul
但是现在我需要得到一个物体的孩子。我要说obj
是$("ul.compare")
如果我喜欢这个$("li", obj).live(...)
,这不仅会给所有的孩子分配事件。
我可以这样做,但我不喜欢它
obj.children("li").each(function () {
$(this).live(...);
});
有没有办法选择对象的所有子项并直接应用live
而不使用.each()
?
答案 0 :(得分:0)
谢谢@Matt,看来你在不知不觉中回答了我的问题。解决方案是.on()
虽然这不起作用,但我们必须使用.each()
将mouseover
分配给每个匹配的元素
//obj.children("li").children("ul").children("li").live("mouseover", function () {...}); //Does not work
obj.children("li").children("ul").children("li").each(function () {
$(this).live("mouseover", function () {...});
});
这是有效的,不需要.each()
obj.children("li").children("ul").children("li").on("mouseover", function () {...});