onClickOut (click after leaving the element)
本问题已经有最佳答案,请猛点这里访问。
问题是我需要一个"onclickout"活动。
例如:在悬停(鼠标悬停)时有一个DIV视图,可以查看某个按钮或任何其他按钮。
如果在元素外部单击它需要隐藏,但如果您说$("body"),则单击它也将在单击元素本身时隐藏。:
现在我听mouseposition,当mouseleave()时,我在点击我的元素时设置了一个var。在下一步中,我将听取一个一般性的单击事件(body),但我会询问是否设置了var。如果不是的话,它必须是在我的元素外单击,这样我才能隐藏我的元素。
希望您能使用它:
1 2 3 4 5 6 7 8 9 10 11 12 | $("#schnellsuche_box").mouseleave(function() { var inside; $("#schnellsuche_box").click(function() { inside = true; }); $("body").click(function() { if(!inside) { $("#schnellsuche_box").hide(); } }); delete inside; }); |
您可以通过在文档级别上单击来执行此操作,在事件处理程序中,您可以使用
1 2 3 4 | $(document).on('click', function(e) { if ( ! $(e.target).closest('#schnellsuche_box').length ) $('#schnellsuche_box').hide(); }); |
小提琴
您需要通过执行
1 2 3 4 5 | $("#schnellsuche_box").click(function() { inside = true; return false; }); |
1 2 3 4 | $("#schnellsuche_box").on("click",function(event) { event.preventDefault(); event.stopPropagation(); }); |
试试这个:
1 2 3 4 5 6 7 | $("body").click(function(e) { var $target = $(e.target); if (!$target.is('#schnellsuche_box') && !$target.parents('#schnellsuche_box').length) { alert('outside'); } }); |