我试图在单击body元素时删除ul元素,并忽略click目标是否在ul元素本身上,否则单击execute并删除ul。 一切正常,但是另一个js的程序化单击会在执行后删除ul,这是一个问题.ul应该仅通过用户交互才能删除。请帮助我解决此冲突。
<div class="search-input">
<ul>
<li><a href='#'>1</a></li>
<li><a href='#'>2</a></li>
</ul>
</div>
$(document).on('click','body', function(e) {
if(!$(e.target).closest(".search-input").find('ul').length > 0) {
$('.search-input ul').remove();
}
});
//程序化点击触发器
$(hotspot).trigger("click", true);
上述程序化单击事件将执行不需要的主体单击事件。
答案 0 :(得分:0)
设置此条件。
is_click = true;
$(document).on('click','body', function(e) {
if(is_click){
if(!$(e.target).closest(".search-input").find('ul').length > 0) {
$('.search-input ul').remove();
}
if(!$(e.target).closest(".input-search").find('ul').length > 0) {
$('.input-search ul').remove();
}
}
});
以及用于程序化点击触发器
is_click = false;
$(hotspot).trigger("click", true);
is_click = true;