当用户在其外部单击时,使用jQuery隐藏DIV

当用户在其外部单击时,使用jQuery隐藏DIV

我正在使用此代码:

$('body').click(function() {
   $('.form_wrapper').hide();});$('.form_wrapper').click(function(event){
   event.stopPropagation();});

这个HTML:

<div class="form_wrapper">
   <a class="agree" href="javascript:;">I Agree</a>
   <a class="disagree" href="javascript:;">Disagree</a></div>

问题是我在DIV内部有链接,当它们点击时它们不再有效。


子衿沉夜
浏览 657回答 4
4回答

倚天杖

你最好选择这样的东西:var&nbsp;mouse_is_inside&nbsp;=&nbsp;false;$(document).ready(function(){ &nbsp;&nbsp;&nbsp;&nbsp;$('.form_content').hover(function(){&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mouse_is_inside=true;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;},&nbsp;function(){&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mouse_is_inside=false;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;&nbsp;&nbsp;$("body").mouseup(function(){&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!&nbsp;mouse_is_inside)&nbsp;$('.form_wrapper').hide(); &nbsp;&nbsp;&nbsp;&nbsp;});});

慕姐8265434

此代码检测页面上的任何单击事件,然后#CONTAINER当且仅当单击的#CONTAINER元素既不是元素也不是其后代之一时隐藏元素。$(document).on('click',&nbsp;function&nbsp;(e)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($(e.target).closest("#CONTAINER").length&nbsp;===&nbsp;0)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$("#CONTAINER").hide(); &nbsp;&nbsp;&nbsp;&nbsp;}});

www说

您可能希望检查为正文触发的单击事件的目标,而不是依赖于stopPropagation。就像是:$("body").click( &nbsp;&nbsp;function(e) &nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;if(e.target.className&nbsp;!==&nbsp;"form_wrapper") &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(".form_wrapper").hide(); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;});此外,主体元素可以不包括浏览器中所示的整个视觉空间。如果您注意到您的点击未注册,则可能需要添加HTML元素的点击处理程序。
打开App,查看更多内容
随时随地看视频慕课网APP