Javascript JQuery切换在第一次单击时起作用,但不会再次起作用(如预期的那样)

Javascript JQuery切换在第一次单击时起作用,但不会再次起作用(如预期的那样),javascript,jquery,toggle,show-hide,Javascript,Jquery,Toggle,Show Hide,我正在创建一个通过单击另一个元素来显示(切换)的div 当我点击一个锚(#toggle contents)时,它应该显示,如果我点击同一个锚或文档中的其他地方,它应该隐藏 我遵循此操作指南中的代码: 第一次单击它时,它当前正在工作,-但不久之后它就会显示和隐藏 标记: <div id="block-header"> <a id="trigger-contents">Toggle</a> </div> <div id="bloc

我正在创建一个通过单击另一个元素来显示(切换)的div

当我点击一个锚(
#toggle contents
)时,它应该显示,如果我点击同一个锚或文档中的其他地方,它应该隐藏

我遵循此操作指南中的代码:

第一次单击它时,它当前正在工作,-但不久之后它就会显示和隐藏

标记:

<div id="block-header">
    <a id="trigger-contents">Toggle</a>
  </div>
  <div id="block-contents">
  </div>
我试图在这里找到与其他切换问题相比的错误,但没有找到任何提示


谢谢你的提示

当您单击
触发器
时,将发生传播,文档
onclick
将触发

您正在绑定到文档
onclick
事件:

$('#' + toggle ).hide(500);
您应该停止在clicked元素中的传播,以防止文档单击,如下所示:

$( '#' + trigger).click(function(e){
    e.stopPropagation();
});

你想做什么?为什么不直接使用:$('#'+toggle).toggle();此行$('#'+切换).hide(500);可能正在隐藏它。如何/在何处初始化
toggle
变量?要总结代码的作用:每次切换“toggle”时,它都会添加一个。单击文档中的事件处理程序,然后隐藏“toggle”元素。请详细说明你希望它做什么,因为它是,你的愿望是有点混乱。谢谢你的评论-我更新了我的问题,希望它现在更有意义。
$( '#' + trigger).click(function(e){
    e.stopPropagation();
});