单击<li>对象并在其下排除标记</​​ li>

时间:2010-10-08 08:15:32

标签: jquery html jquery-selectors

  

可能重复:
  How to ignore click event when clicked on children.

我想知道如何构建可以在jQuery中点击的<li>,我有<a href="/home">我不希望它与点击其余部分相同李做...

示例:

<li>
    <div> bla bla </div>
    <div> <a href="/home"> </a> </div>
</li>

和jQuery代码:

$(document).ready(function () {
    $('li').hide();

    $("li").toggle(
        function () {
            $(this).next().show("slow");
        },
        function () {
            $(this).next().hide();
        }
    );
});

现在我希望切换功能不仅仅在<a href>的{​​{1}}上工作,我解释说,当我点击我想要到达的链接“/ home”时...

谢谢, 戈兰

1 个答案:

答案 0 :(得分:1)

问题来自于事件发生在a标签上然后冒泡到列表项上,以及碰巧在DOM的那个分支中的任何其他元素。

解决方案是在链接上的click事件中停止此冒泡。以下内容应该有效。

$('li a').click(
    function(event){
        event.cancelBubble = true;
        if (event.stopPropagation) event.stopPropagation();    
    }
);

您可以在上面的事件中返回false,但这也会在链接后停止浏览器。