0

私はこの必須のul>li構造を持っています

<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(...)は子供だけでなくすべてのliにイベントを割り当てます。

私はこのようにできますが、私はそれが好きではありません

obj.children("li").each(function () {
    $(this).live(...);
});

オブジェクトのすべての子を選択し、live使用せずに直接適用する方法はあります.each()か?

4

1 に答える 1

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 () {...});
于 2012-04-05T09:50:27.517 に答える