单击
  • ;对象并排除其下的标签
  • 发布于 2024-09-26 19:01:18 字数 937 浏览 3 评论 0原文

    可能的重复:
    如何在点击子项时忽略点击事件。

    我想知道如何构建可在其中使用 jQuery 单击的

  • ,我有 我不希望它执行与单击 li 其余部分相同的操作...
  • 示例:

    <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();
            }
        );
    });
    

    现在我希望切换功能不适用于 仅在

  • 的其余部分上,我解释一下,当我单击链接时,我想要访问“/home”...
  • 谢谢, 戈兰高地

    Possible Duplicate:
    How to ignore click event when clicked on children.

    I wanted to know how can i build <li> that is clickable with jQuery while inside it, I have <a href="/home"> that i don't want it to do the same as the click on the rest of the li do...

    Example :

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

    and the jQuery code :

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

    Now i want the toggle function not to work on the <a href> only on the rest of the <li>, I explain, when I click on the link I want to reach "/home"...

    Thanks,
    Golan

    如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

    扫码二维码加入Web技术交流群

    发布评论

    需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

    评论(1

    我不是你的备胎 2024-10-03 19:01:19

    问题来自于这样的事实:单击事件发生在 a 标记上,然后冒泡发生在列表项以及恰好位于 DOM 的该分支中的任何其他元素上。

    解决方案是在链接的点击事件中停止这种冒泡。像下面这样的东西应该有效。

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

    您可以在上述事件中返回 false,但这也会阻止浏览器跟踪该链接。

    The problem comes from the fact the click event happens on the a tag then bubbles up to happen on the list item, and any other elements that happen to be in that branch of the DOM.

    The solution is to stop this bubbling in the click event on the link. Something like the following should work.

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

    You could just return false in the event above, but that would also stop the browser following the link.

    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文