Javascript JQuery切换在第一次单击时起作用,但不会再次起作用(如预期的那样)
我正在创建一个通过单击另一个元素来显示(切换)的div 当我点击一个锚(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
#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();
});