2013-02-14 113 views
0

我使用這個模式窗口的稍作修改的版本:http://blog.avtex.com/2012/01/26/cross-browser-css-only-modal-box/有一個固定的div抓住鼠標點擊?

一個我做的修改是增加onclick="history.back(-1)"到覆蓋和垂直偏移申報單,以便通過點擊以外的隱藏模式它。但是,向vertical-offset div添加onclick事件會捕獲在dumbBox div上發生的點擊。

您可以在此的jsfiddle看一看,看看發生了什麼:http://jsfiddle.net/dvrcthewrld/uaP3v/1/

我怎樣才能獲得dumbBox div來對付那些在它發生的點擊,而不是垂直偏移DIV趕上他們?

[否jQuery的,請。]

我真的很想知道爲什麼內DIV傳click事件給家長,如何制止。

+0

你想要的模式時關閉dumbBox外的用戶點擊? – 2013-02-14 20:46:55

+0

是的,我希望通過觸發歷史回來事件發生。我通常對我的解決方案很滿意。這只是垂直偏移量div令人討厭的問題,使它不完美。 – David 2013-02-14 20:50:01

+0

可能'stopPropagation'適合在這裏? – David 2013-02-14 22:20:26

回答

1

演示:http://jsfiddle.net/cZkn2/

HTML

<div class="vertical-offset" onclick="check(this)"> 
    <div class="dumbBox" id="div"> 
     Content goes here<br/> 
     Content goes here<br/> 
     Content goes here<br/> 
     Content goes here 
    </div> 
</div> 

的JavaScript

function check(e) { 
    var target = (e && e.target) || (event && event.srcElement); 
    var obj = document.getElementById('div'); 
    if(target!=obj){history.back(-1);} 
} 
+0

此解決方案的一個問題。如果我點擊dumbBox中的div,它會關閉,因爲我沒有在技術上點擊id =「div」的div。這就是爲什麼我希望得到像我所嘗試的那種語法正面的解決方案。 – David 2013-02-14 22:04:30

+0

另外,它在Firefox中不起作用。不知道爲什麼。 – David 2013-02-14 23:19:35

+0

我想通過向dumbBox div添加'onclick =「event.stopPropagation?event.stopPropagation():(event.cancelBubble = true);」'可以防止該div中的點擊冒泡到垂直偏移量div。所以,代碼完全適用於Chrome,但您的JavaScript仍然不能在Firefox中工作。 – David 2013-02-15 04:00:25