Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在外部单击时关闭切换_Javascript_Jquery_Onclick_Toggle_Forceclose - Fatal编程技术网

Javascript 在外部单击时关闭切换

Javascript 在外部单击时关闭切换,javascript,jquery,onclick,toggle,forceclose,Javascript,Jquery,Onclick,Toggle,Forceclose,我对javascript和JQuery还很陌生……如何通过在切换区域外单击来关闭这个div(我不希望用户必须使用关闭按钮) 代码如下所示: function toggleDiv(divId) { $("#"+divId).toggle(); } function showonlyone(thechosenone) { $('.newnote').each(function(index) { if ($(this).attr("id") == thechosenone) {

我对javascript和JQuery还很陌生……如何通过在切换区域外单击来关闭这个div(我不希望用户必须使用关闭按钮)

代码如下所示:

 function toggleDiv(divId) {
 $("#"+divId).toggle();
 }

 function showonlyone(thechosenone) {
 $('.newnote').each(function(index) {
      if ($(this).attr("id") == thechosenone) {
           $(this).show(0);
      }
      else {
           $(this).hide(0);
      }
 });
 }
html是这样的

<div class="note">

     <a id="myHeader1" href="javascript:showonlyone('newnote1');" >
          <img src="images/SN_NotesPage_14.png">
     </a>      

     <div class="newnote" id="newnote1">
          <a>
               <img src="images/SN_NotesPage_16.png">
          </a>
     </div>
</div>


谢谢

我通常会在文档正文中添加一个单击事件侦听器,关闭覆盖。为了防止通过单击覆盖来关闭覆盖,我向包含ev.stopPropagation()的覆盖添加了第二个单击事件侦听器

因此,使用jQuery时,它看起来像:

$(document.body).bind('click.closeNote', function() {
    $('.newnote').hide();
});
$('.newnote').bind('click.closeNote', function(ev) {
    ev.stopPropagation();
});
另一种方法是添加一个覆盖整个页面的透明div(zIndex比note低)。然后,您可以向该div添加一个click事件侦听器,以关闭注释

编辑:
请注意,上面的示例性能不是很好,因为它在每次单击时都执行选择器。只需在显示便笺时绑定此事件,并在便笺关闭时解除绑定即可。

谢谢,很好的解决方案-当我单击它时,div也会关闭。我可能错过了电动汽车上的一些东西