Javascript 禁用父块中的所有链接,但不禁用其子块中的任何链接
我有一个部门在上课。html的结构如下所示Javascript 禁用父块中的所有链接,但不禁用其子块中的任何链接,javascript,jquery,Javascript,Jquery,我有一个部门在上课。html的结构如下所示 <div class="wrapper"> <div class="header"> <a href="http://mysite.com">LOGO</a> </div> <div class="nav"> <!-- Anchors --> </div> <div class="container"&
<div class="wrapper">
<div class="header">
<a href="http://mysite.com">LOGO</a>
</div>
<div class="nav">
<!-- Anchors -->
</div>
<div class="container">
<!-- Other contents anchors etc. -->
</div>
</div>
我们可以不使用循环进行检查就完成吗?或者,使用循环和不使用循环会影响相同的结果 试试这样的方法:
$('.wrapper').on('click', function(e){
var $target = $(e.target);
if(!$target.parents('.nav')){
e.preventDefault();
}
})
您可以使用以下命令以包含在另一个div中的、不具有类nav的所有锚点为目标,这些锚点是wrapper的后代: 试一试 试试这个
$('.wrapper div:not(".nav") a').removeAttr('href');
请看这里:
代码
像这样选择它们
$('div.wrapper > div:not(".nav") a')
样本不一样,只是相似:基本样本哈利芬的答案是这样的 最近的功能比父母更有效
$'.wrapper nav'.bind'click';是的,这是真的。过滤到“a”标记也会加快脚本的速度。
$('.wrapper').find('a').not($('.wrapper').find('.nav a')).on('click', function(e){
e.preventDefault();
})
$('.wrapper div:not(".nav") a').removeAttr('href');
$(".wrapper div:not('.nav') a").prop("href", "#");
$('div.wrapper > div:not(".nav") a')
$('.wrapper').on('click', 'a', function(e){
if(!$(this).closest('.nav')){
e.preventDefault();
}
})