可点击的父 DIV 显示和隐藏子 DIV 在 jQuery 中存在问题
这有点疯狂,我不确定出了什么问题。我想让一个 DIV 可点击来显示/隐藏子 div。但一旦我隐藏了一个孩子,我就无法将其取消隐藏。
这是我的整个代码。任何帮助表示赞赏。在下面的示例中,单击取消按钮时我无法取消隐藏inner1。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.min.js"></script>
<div class="wrapper">
<div class="inner1">
1
</div>
<div class="inner2" style='display:none'>
2 <input type='button' value='cancel' class='cancel'>
</div>
</div>
<style>
div {border:1px solid red;}
</style>
<script>
$(document).ready(function() {
$('.wrapper').live("click", function(){
$('.inner1').hide();
$('.inner2').show();
});
$('.cancel').live("click", function(){
$('.inner1').show();
$('.inner2').hide();
});
});
</script>
This is kind of crazy and I am not sure what's wrong. I want to make a DIV clickable to show/hide children divs. But once I do a hide of one children, I cannot unhide it.
Here's my entire code. Any help appreciated. IN example below, I cannot unhide inner1 when clicking Cancel button.
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.min.js"></script>
<div class="wrapper">
<div class="inner1">
1
</div>
<div class="inner2" style='display:none'>
2 <input type='button' value='cancel' class='cancel'>
</div>
</div>
<style>
div {border:1px solid red;}
</style>
<script>
$(document).ready(function() {
$('.wrapper').live("click", function(){
$('.inner1').hide();
$('.inner2').show();
});
$('.cancel').live("click", function(){
$('.inner1').show();
$('.inner2').hide();
});
});
</script>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要使用以下命令来阻止
.cancel
上的click
冒泡以及.wrapper
上的点击.stopPropagation()
,如下所示:您可以在这里测试。当前发生的情况是您将其隐藏,但随后
.wrapper
点击处理程序获得点击并立即再次显示.inner2
。You need to stop the
click
on.cancel
from bubbling up and also being a click on.wrapper
by using.stopPropagation()
, like this:You can test it out here. What's currently happening is you are hiding it, but then the
.wrapper
click handler gets the click and immediately shows.inner2
again.