我搜索了一种检测JQuery点击目标是否在其DOM树中具有已定义标识$('#contextMenu')
的父级的方法。
$("html").click(function(e) {
if ($(e.target).parents('#contextMenu')) {
alert('yes');
}
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="contextMenu">
<li><a href="#"><i class="fa fa-user-plus"></i> share</a>
</li>
</ul>
&#13;
怎么做?
答案 0 :(得分:3)
检查length
属性。
$( "html" ).click(function(e) {
if ($(e.target).parents('#contextMenu').length) {
alert('yes');
}
});
然而.closest()
表现更好。
感谢@A. Wolff,您可以使用Event Delegation
$(document).on('click', '#contextMenu', function(){
alert('yes');
});
答案 1 :(得分:2)
使用.length属性检查元素是否存在。
$( "html" ).click(function(e) {
if ($(e.target).parents('#contextMenu').length) {
alert('yes');
}
});
如果长度为0,则表示未找到任何元素,