我的代码如下:
<div class="disabledClickevent">
<ul>
<li><a>link1</a></li>
<li><a>link2</a></li>
</ul>
</div>
div有一个点击事件,该事件被return false;
禁用
我的问题是,这也会禁用<a>
链接
答案 0 :(得分:2)
$(document).on('click','.disabledClickevent' function(e) {
if( e.target !== this )
//clicked out side
return;
//clicked inside
});
答案 1 :(得分:2)
我会这样做:
$(".disabledClickevent").on("click", ":not(a)", function(e) {
//do stuff with your div
});
这会从点击事件中排除a
。
答案 2 :(得分:2)
可能是一个解决方案:
$('.disabledClickevent').on('click',function(e){
if($(e.target).is(':not(a)'))
return false;
});
或者将点击处理程序设置为链接:
$('.disabledClickevent a').click(function(e){
e.stopPropagation();
});
答案 3 :(得分:0)
答案 4 :(得分:0)
如果您不打算通过Javascript向页面添加新的“disabledClickevent”div,您可以这样做:
$('.disabledClickevent').click(function() {...});
或
$('.disabledClickevent').bind('click', function() {...});
仅将事件附加到已存在的div,而不进行任何类型的委托,因此链接将按照您的需要正常工作。
要明确的是,如果您计划在绑定事件时已经存在于页面上的所有“disabledClickevent”div,这只是一个可行的解决方案。