0

私が作成しているメニューは次のようになります。

<ul id="myUl">
    <li><span>li #1</span>
        <ul>
            <li>
                <div class="myContent">
                    <a href="" name="myLink">clickMe!</a>
                </div>
            </li>
    </li>
</ul>

<a>だから、私はのタグのクリックulハンドラーを定義したいと思います"myUl".

私は次のようなcssセレクターのようなものを試しました:

$('ul[id="myUl] a').on('click', do stuff!);

また

$('ul[id="myUl] > a').on('click', do stuff!);//aはの直接の子ではないため、これは機能しませんul

aこの特定の要素だけのクリックを処理する正しい方法は何ulですか?

4

7 に答える 7

4

このような。

$('#myUl a').on('click', your_func);

を使用しなかったことに注意してください。これにより、の子孫(子)>を直接指定するように制限されます。ul

または、このようにすることができます。

$('#myUl').on('click', 'a', your_func);

a違いは、これはハンドラーをULにバインドしますが、がクリックされたときにのみトリガーされることです。最初の例は、に直接バインドしaます。

于 2012-09-28T14:28:27.200 に答える
2

非常に簡単:

$('#myUl').on('click', 'a', do stuff!);
于 2012-09-28T14:29:38.963 に答える
1

セレクターでinを使用する>と、必要以上に具体的になります。それを取り出すと、直接の子ではなく、(任意のレベルの)すべての子要素に対して機能します。

$(document).ready(function() {
    $('ul#myUl a').click(function() {
        // do stuff
    });
});
于 2012-09-28T14:28:34.970 に答える
1
$('ul#myUl a').on('click', do stuff!);

また

$('ul[id="myUl"] a').on('click', do stuff!);

動作するはずです。

于 2012-09-28T14:29:05.130 に答える
1

「」が欠落$('ul[id="myUl"] a').on('click', do stuff!);して$('ul[id="myUl"] > a').on('click', do stuff!); いますが、要素のIDをセレクターとして直接使用できます。

$('#myUl a').on('click', handler function);

于 2012-09-28T14:29:13.630 に答える
1

見積もりがありませんが、代わりにこれを試してください:

$('#myUl a').on('click', function(){alert('do stuff!')});
于 2012-09-28T14:29:19.690 に答える
1

セレクター内で指定できるコンテキストもあります

$('a','#myUl').click
//  This is equivelant to $('#myUl').find('a')
//  So this finds all descendant anchor tags of #myUl
于 2012-09-28T14:39:59.520 に答える