【问题标题】:preventDefault(); jquery child affected防止默认(); jquery 孩子受影响
【发布时间】:2014-08-25 10:50:31
【问题描述】:

我检查了有关该问题的答案,但无法调整解决方案,因此需要您的帮助。我希望 preventdefault(); 仅适用于父母元素,但在这里它适用于所有内容

<ul class="links">
        <li><a href="#"><b>Accueil</b></a></li>
        <li>
            <a href="#"><b>Liste serveurs</b></a>
                <ul class="sub">
                    <li><a href="#"><b>sub 1</b></a></li>
                    <li><a href="#"><b>sub 2</b></a></li>
                </ul>
        </li>
</ul>

JS

$('.links > li').on('click',function(noway) {
        noway.preventDefault();

});

目标是当我点击 Liste serverurs 时,.sub 出现,但是当我点击 sub 1 时,什么也没发生。我想转到 sub 1 链接。

编辑:我不明白,我觉得这是完全错误的,但它有效。

$('.links > li').on('click',function(noway) {
            if($(this).attr("class") === "sub") { noway.preventDefault(); }

    });

【问题讨论】:

  • 那是因为.on() 监听到所有点击事件冒泡到.links 的直接后代&lt;li&gt;(也包括源自&lt;a&gt; 的那些),这就是为什么没有孩子会工作。您还没有明确说明要禁用哪个元素的点击事件——它是顶级链接的 &lt;a&gt; 元素,还是其他?
  • 如果这种元素没有默认值,您想在li 点击中阻止什么?
  • 你的意思是它会影响链接点击?你到底想做什么。也许会更清楚......
  • 我只是编辑我的帖子。更改 .click() 什么都不做。我希望 sub 1 链接去某个地方,现在它被 preventdelfault();

标签: jquery html preventdefault


【解决方案1】:

尝试最基本的方法......为什么让它变得复杂!

$('ul.links > li > a').click(function(event ) {
        event.preventDefault();
});

demo

含义:

preventDefault() 仅适用于li 的直系后代a,并且此li 应该是ul.links 的直系后代

【讨论】:

  • 啊,抱歉,它阻止了菜单中的所有链接加载,Accueil 也是。
【解决方案2】:

这行得通

<ul class="links">
    <li><a href="http://www.google.com"><b>Accueil</b></a></li>
            <li>
                <a href="#"><b>Liste serveurs</b></a>
                    <ul class="sub">
                        <li><a rel="1" href="http://www.google.com"><b>sub 1</b></a></li>
                        <li><a rel="1" href="#"><b>sub 2</b></a></li>
                    </ul>
            </li>
    </ul>

$(document).ready(function(){
    $('a').click(function(noway) {
                if($(this).attr("rel")!="1")
                noway.preventDefault();
    })
 });

【讨论】:

  • 您缺少); 来关闭您的处理程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-13
  • 1970-01-01
  • 2012-12-31
  • 1970-01-01
相关资源
最近更新 更多