0

我想单击$('.sub-menu')选择器并返回被单击的最低嵌套项,而不是最高的。例如,当我单击“enlish”时,会返回“root”,因为“english”是“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 回答