2015-03-25 19 views
2

工作,我的JavaScript的onclick顯示和隱藏定義style.display = "inherit";style.display = "none"; ..元素的JavaScript()的onclick隱藏元素 - 不會在Firefox

「隱藏」功能也當按下ESC鍵運行.. 一切都在鉻,歌劇等工作正常..除了FIREFOX ..

window.onload=function() { 
    document.body.onkeyup = key_event; 
    } 

    function showDiv() { 
     document.getElementById('PhotoFull').style.display = "inherit"; 
     event.stopPropagation(); 
    } 

    function hideDiv() { 
     var target = event.target || event.srcElement; 
     if (event.currentTarget == target) { 
       document.getElementById('PhotoFull').style.display = "none"; 
     } 
    } 

    function key_event(e) { 
     if (e.keyCode == 27) hideDiv(); 
     } 

showDiv()的作品,但hideDiv不..

HTML:

<div id="PhotoFull" style="position: absolute; width: 100%; height: 100%; background-color: rgba(0,0,0, 0.75); display:none; z-index: 999;" onclick="hideDiv()"> 
     <div style='width: 1000px'> 
      SOME CONTENT 
     </div> 
</div> 

這裏是的jsfiddle:http://jsfiddle.net/5e6ww93h/2/

感謝關注

+0

HTML在哪裏? – 2015-03-25 09:17:05

+0

你好,html添加;) – 2015-03-25 09:30:18

+1

這裏是JSFIDDLE:http://jsfiddle.net/5e6ww93h/2/ – 2015-03-25 10:02:27

回答

3

Syntaxically,你必須通過事件OBJ您hideDiv功能

function hideDiv(event) { 
    var target = event.target || event.srcElement; 
    if (event.currentTarget == target) { 
      document.getElementById('PhotoFull').style.display = "none"; 
    } 
} 

function key_event(e) { 
    if (e.keyCode == 27) hideDiv(e); 
} 
+0

你好,我嘗試了它,但無論如何不工作..我做了JSFIDDLE:http:// jsfiddle .net/5e6ww93h /感謝您的關注 – 2015-03-25 09:41:54

+0

爲什麼你檢查'event.currentTarget == target'? – jmgross 2015-03-25 09:43:29

+0

裏面的PhotoFull是

..沒有它hideDiv正在執行時,用戶點擊這個孩子DIV ..我更新了jsfiddle https://jsfiddle.net/5e6ww93h/2/ – 2015-03-25 09:52:21

0

嘗試以下

window.onload=function() { 
    document.body.onkeyup = key_event; 
    } 

    function showDiv() { 
     document.getElementById('PhotoFull').style.display = "inherit"; 
     event.stopPropagation(); 
    } 

    function hideDiv(e) { 

     var target = e.target || e.srcElement; 

     if (e.currentTarget == target) { 
       document.getElementById('PhotoFull').style.display = "none"; 
     } 
    } 

    function key_event(e) { 
     if (e.keyCode == 27) 
         hideDiv(e); 
       } 

提琴手: - http://jsfiddle.net/5e6ww93h/4/

+0

你好,謝謝關注。在這種情況下,點擊框外部不會執行hideDiv – 2015-03-25 10:14:26

+0

我認爲它可以在您的頁面上工作。提琴盒是不同的面板差異郎..你有沒有試過這個在你的頁面 – 2015-03-25 10:18:49

+0

ESC按鈕的作品..點擊外面不是。 。 。 – 2015-03-25 10:21:35