点击某元素之外的地方,隐藏该元素,点击自身不受影响(jQuery)
您可以使用jQuery的click
事件和toggle
方法来实现这个功能。当点击页面上的其他地方时,可以通过检查事件的target
属性来判断点击的是否是目标元素本身。如果不是,则隐藏目标元素。
以下是实现这个功能的示例代码:
$(document).on('click', function(e) {
var $target = $(e.target);
if (!$target.is('.your-element-selector') && !$target.closest('.your-element-selector').length) {
$('.your-element-selector').hide();
}
});
$('.your-element-selector').on('click', function(e) {
e.stopPropagation();
});
在这段代码中:
.your-element-selector
替换为您要隐藏的元素的选择器。- 当点击文档任何位置时,事件会冒泡至
document
,然后执行函数。 e.target
是触发事件的原始元素。!$target.is('.your-element-selector')
检查点击的元素是否是目标元素本身。!$target.closest('.your-element-selector').length
检查点击的元素是否是目标元素的子元素。- 如果两个检查都不通过,意味着点击的不是目标元素或其子元素,因此隐藏它。
$('.your-element-selector').on('click', function(e) { e.stopPropagation(); })
阻止点击事件冒泡到document
,这样就不会触发隐藏元素的逻辑。
评论已关闭