riz*_*don 5 html javascript show hide
我试图在点击一个链接后显示#subscribe-pop div,并在点击它之外的任何地方时隐藏它.如果我改变:我可以让它显示和隐藏:
$('document').click(function() {
Run Code Online (Sandbox Code Playgroud)
至
$('#SomeOtherRandomDiv').click(function() {
Run Code Online (Sandbox Code Playgroud)
HTML:
<div id="footleft">
<a href="#" onclick="toggle_visibility('subscribe-pop');">Click here to show div</a>
<div id="subscribe-pop"><p>my content</p></div>
</div>
Run Code Online (Sandbox Code Playgroud)
脚本:
<script type="text/javascript">
function toggle_visibility(id) {
var e = document.getElementById("subscribe-pop");
if(e.style.display == 'block')
e.style.display = 'none';
else
e.style.display = 'block';
}
}
$('document').click(function() {
$('#subscribe-pop').hide(); //Hide the menus if visible
});
$('#subscribe-pop').click(function(e){
e.stopPropagation();
});
</script>
Run Code Online (Sandbox Code Playgroud)
Lui*_*iri 13
您必须在容器中停止事件传播(在本例中为"footleft"),因此父元素不会注意到事件已被触发.
像这样的东西:
HTML
<div id="footleft">
<a href="#" id='link'>Click here to show div</a>
<div id="subscribe-pop"><p>my content</p></div>
</div>
Run Code Online (Sandbox Code Playgroud)
JS
$('html').click(function() {
$('#subscribe-pop').hide();
})
$('#footleft').click(function(e){
e.stopPropagation();
});
$('#link').click(function(e) {
$('#subscribe-pop').toggle();
});
Run Code Online (Sandbox Code Playgroud)
看到它在这里工作.