我對某事感到困惑,以爲這裏有人可能有洞察力。jquery關閉外部和內部點擊重疊?
我已經構建了一個簡單的覆蓋,但它沒有按預期工作。 這裏的CSS:
#overlayOuter {
display: none;
position: absolute;
height: 100%;
width: 100%;
background: #000;
z-index: 100;
}
#overlayInner {
position: absolute;
top: 100px;
left: 200px;
width: 600px;
height: 400px;
z-index: 101;
}
的HTML很簡單:
Blahblahblah!
<a href="#" onclick="$('#overlayOuter').show();return false;">show overlay</a>
<div id="overlayOuter">
<div id="overlayInner">
Oyeah? Blahblah!
</div>
</div>
我當時就想jQuery來關閉疊加,當有人在overlayOuter 點擊而不是的overlayInner箱(這樣我就可以包括形式等等)。
我期待工作的第一個jQuery的是......
$('#overlayOuter').click(function() {
$('#overlayOuter').fadeOut('fast');
});
...這工作,但點擊overlayInner當奇怪也關閉!任何形式等都是無用的!
以下確實根據需要工作...
$('#overlayOuter').click(function(e) {
if ($(e.target).parents('#overlayInner').length==0) {
$('#overlayOuter').fadeOut('fast');
}
});
...但WTF!不應該第一個工作? z-index是否足以掩蓋與overlayOuter分開的overlayInner?
謝謝你!不好意思,我沒有想到這一點:P – neokio