问题是我需要“onClickOut”-Event 。
例如: 你有一个DIV观看悬停(onMouseOver)一些按钮或什么。
如果你点击它需要隐藏的元素外面,但如果你说 $(“body”)。点击它也会在你点击元素本身时被隐藏。 :/
现在我听了鼠标定位,当 mouseleave()我在点击我的元素时设置了一个var。在下一步中,我会听一个基本的点击事件(正文),但我会问var是否已设置。如果不是它必须在我的元素之外点击,所以我可以隐藏我的元素。
我希望你能用它:
$("#schnellsuche_box").mouseleave(function() {
var inside;
$("#schnellsuche_box").click(function() {
inside = true;
});
$("body").click(function() {
if(!inside) {
$("#schnellsuche_box").hide();
}
});
delete inside;
});
答案 0 :(得分:3)
您可以通过点击文档级别来执行此操作,并在事件处理程序中使用#schnellsuche_box
检查点击的元素是#schnellsuche_box
还是closest()
内的任何元素,像这样:
$(document).on('click', function(e) {
if ( ! $(e.target).closest('#schnellsuche_box').length )
$('#schnellsuche_box').hide();
});
答案 1 :(得分:1)
您需要通过执行#schnellsuche_box
来阻止body
点击事件冒泡到return false
点击事件(默认事件传播):
$("#schnellsuche_box").click(function() {
inside = true;
return false;
});
答案 2 :(得分:0)
试试这个:
$("body").click(function(e) {
var $target = $(e.target);
if (!$target.is('#schnellsuche_box') &&
!$target.parents('#schnellsuche_box').length) {
alert('outside');
}
});
答案 3 :(得分:0)
$("#schnellsuche_box").on("click",function(event) {
event.preventDefault();
event.stopPropagation();
});