【发布时间】: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的直接后代<li>(也包括源自<a>的那些),这就是为什么没有孩子会工作。您还没有明确说明要禁用哪个元素的点击事件——它是顶级链接的<a>元素,还是其他? -
如果这种元素没有默认值,您想在
li点击中阻止什么? -
你的意思是它会影响链接点击?你到底想做什么。也许会更清楚......
-
我只是编辑我的帖子。更改 .click() 什么都不做。我希望 sub 1 链接去某个地方,现在它被 preventdelfault();
标签: jquery html preventdefault