0

$('.sub-menu')セレクターをクリックして、クリックされたネストされた最上位のアイテムではなく、最下位のネストされたアイテムを返したいと思います。たとえば、「enlish」をクリックすると、「english」は「root」の子であるため、「root」が返されます。「英語」を選択したときに「英語」を返したい。

<div ID="browse_container">
    <div class="sub-menu">Root
        <div class="sub-menu">English</div>
        <div class="sub-menu">Maths
            <div class="sub-menu">Year 1</div>
            <div class="sub-menu">Year 2</div>
        </div>
        <div class="sub-menu">▷ Science</div>
    </div>
</div>

私のスクリプトは単純です:

$('.sub-menu, #root').on('click', function(event){
    alert($(this).text())
});
4

3 に答える 3

3
$('.sub-menu, #root').on('click', function(event){
    alert($(event.target).text());
    return false; // I stop the bubble
});

続きをevent.target 読む

ここで例を参照してくださいhttp://jsfiddle.net/qeVXa/

于 2012-10-15T22:56:51.550 に答える
2

ああ、答えは使用することです$(event.target).text()

それ以外の$(this).text()

于 2012-10-15T22:56:43.670 に答える
0

このデモを試してください** http://jsfiddle.net/H5Eq7/

API - .stopPropagation http://api.jquery.com/event.stopPropagation/

伝搬停止

イベントが DOM ツリーをバブリングしないようにして、親ハンドラーにイベントが通知されないようにします。

これは原因に適合するはずです:)

コード

$(document).ready(function() {
    $('.sub-menu, #root').on('click', function(event) {
        event.stopPropagation();
        alert($(this).text())
    });

});​
于 2012-10-15T22:59:12.900 に答える