我有一些带子项的父导航项目,我不需要父项目可点击。
他们看起来像这样:
<a href="parent">Parent Item</a>
是否有针对具有<a>
特定类的.parent
标记,并使其无法点击?
答案 0 :(得分:8)
如果有人对Pure CSS解决方案感兴趣(因为这个问题被标记为CSS),那么你可以使用pointer-events: none;
a[href="parent"] {
cursor: default;
pointer-events: none;
}
支持
答案 1 :(得分:2)
使用:
$(function () {
$('a.parent').on("click", function (e) {
e.preventDefault();
});
});
答案 2 :(得分:1)
如果你想避免使用jQuery库,没有它就一样容易:
var disabled = document.querySelector('.parent');
disabled.addEventListener('click', function(e) {e.preventDefault();}, false);
答案 3 :(得分:0)
另一个纯CSS选项是用绝对定位的“封面”覆盖链接:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<style media="all">
.parent {position: relative; z-index: -1;}
.parent:after {content: ""; position: absolute; top:0; right: 0; bottom: 0; left: 0;}
</style>
</head>
<body>
<a href="http://google.com" class="parent">Disabled Link</a>
<a href="http://google.com">Normal Link</a>
</body>
</html>
答案 4 :(得分:0)
您可以在主体上放置一个侦听器,而不是每个.parent
上的侦听器。以下内容适用于所有正在使用的浏览器,无需任何库支持:
function stopClickOnParentClass(evt) {
var el = evt.target || evt.srcElement;
if (/(^|\s)parent(\s|$)/.test(el.className)) {
evt.preventDefault();
return false;
}
}
然后:
<body onclick="stopClickOnParent(event);" …>
您还可以通过将类传递给函数并从中构建正则表达式来使类动态化。