如果用户点击div
内的链接,我就会忽略div
上的点击回调。该函数如下所示:
$(".section").click(function(){
if ($(this).hasClass("solid")) {
$(this).removeClass("solid");
$(this).hover(fadeFunction, darkenFunction);
$(this).fadeTo(150, inactiveOpacity);
}
else {
$(this).addClass("solid");
$(this).unbind("mouseenter");
$(this).unbind("mouseleave");
$(this).fadeTo(25, inactiveOpacity);
$(this).fadeTo(150, activeOpacity);
}
});
我尝试在if(!$(this).is("a)) {
中包装if / else,但行为没有变化。有人可以指出我误解或做错了吗?
很抱歉,如果这是一个简单的问题,我是JQuery / css初学者。
答案 0 :(得分:13)
您可以检查事件目标是否为锚点,如下所示:
$(".section").click(function(e){
if($(e.target).is("a")) return;
if ($(this).hasClass("solid")) {
$(this).removeClass("solid");
.hover(fadeFunction, darkenFunction);
.fadeTo(150, inactiveOpacity);
}
else {
$(this).addClass("solid");
.unbind("mouseenter mouseleave");
.fadeTo(25, inactiveOpacity);
.fadeTo(150, activeOpacity);
}
});
答案 1 :(得分:5)
试试这个:
$('a').click(function(e) {
e.stopPropagation();
});
您可以在此处找到文档:http://api.jquery.com/event.stopPropagation/