我在div元素上有以下click函数。 div元素内部是链接。如何停止此链接上的点击功能?我尝试了z-index但它不起作用。
$('.thumb.flip').click(function () {
if ($(this).find('.thumb-wrapper').hasClass('flipIt')) {
$(this).find('.thumb-wrapper').removeClass('flipIt');
} else {
$(this).find('.thumb-wrapper').addClass('flipIt');
}
});
答案 0 :(得分:1)
尝试e.preventDefault()
$('.thumb.flip').click(function (e) {
e.preventDefault();
if ($(this).find('.thumb-wrapper').hasClass('flipIt')) {
$(this).find('.thumb-wrapper').removeClass('flipIt');
} else {
$(this).find('.thumb-wrapper').addClass('flipIt');
}
});
答案 1 :(得分:1)
添加代码以阻止点击从DOM上的链接传播到div:
$('a').click(function(e){e.stopPropagation();})
请参阅http://api.jquery.com/event.stoppropagation/
<强> jsFiddle example 强>
答案 2 :(得分:1)
捕获事件对象:
$('.thumb.flip').click(function (evt) {
测试以查看点击了哪种元素:
if (evt.target.tagName.toLowerCase() === "a") {
return true;
}
答案 3 :(得分:0)
使用鼠标按下事件并在处理程序中调用event.stopPropagation()和event.preventDefault();
答案 4 :(得分:0)
如果点击目标是a
,则返回false,否则执行正常操作...
$('.thumb.flip').click(function (e) {
if ($(e.target).is('a')) {
return false;
}
});
z-index
不会执行任何操作,但是如果您想阻止来自css的点击,您可以将pointer-events
属性添加到链接并设置值none
。这将禁用链接上的所有类型的事件。
答案 5 :(得分:0)
$('.thumb.flip').click(function (e) {
if (e.target.nodeName==="A") { //if target is an anchor, ignore
return;
}
$(this).find('.thumb-wrapper').toggleClass('flipIt') //toggle class
});
答案 6 :(得分:0)
如果您可以编辑标记,请执行以下操作:
<a href="javascript:void(0);" ></a>