【发布时间】:2010-11-23 02:43:23
【问题描述】:
我试图通过单击另一个元素来显示/隐藏一个元素。为简单起见,我将每个 div 称为 A、B、C 或 D,如图所示。我到目前为止的一个例子可以在这里查看:http://jsfiddle.net/Yh8Ar/1/。所以我有...
<div id="event">
<div id="structure1">...</div> // A
<div class="structures">...</div> // B
<div id="structure2">...</div> // C
<div class="structures">...</div> // D
// more of these div pairs down here
</div>
...我希望功能是这样的,当我单击 div A 时,div B 在可见和隐藏之间切换( show()/hide() )...但是...我也想要 div B ,当可见时,当我单击窗口中的任何其他位置时隐藏,除了单击 div B 本身。另一个 div 对 (C,D) 也是如此……点击 C、D 切换并点击页面上的任意位置将隐藏 D。
这里的棘手部分是如果显示 div B 并且我单击 div C,我希望 div B 隐藏而 div D 显示。因此,单击页面上除 div B、D 之外的任何位置将恭敬地隐藏 div B、D。但我也希望能够通过反复单击 div A 来切换 div B 以及通过反复单击 div C 来切换 div D。一次只能显示一个 div。
感谢 Nick Craver,我目前拥有的 jQuery 是...
$(function() {
$(document).click(function() {
$('.structures').hide();
});
$('#fraction').click(function(event) {
event.stopPropagation();
$(this).next().toggle();
});
$('.structures').click(function(event) {
event.stopPropagation();
});
});
...但我不知道如何区分 div 对,意思是,我不知道如何在单击 div C 时隐藏 div B 并显示 div D。这是一个示例现在可以使用所有适当的代码:http://jsfiddle.net/Yh8Ar/1/
谢谢, 赫里斯托
【问题讨论】: