javascript()onclick隐藏元素-dos'我不在firefox工作

javascript() onclick hide element - doesn't work in firefox

本文关键字:工作 firefox onclick 隐藏 -dos 元素 javascript      更新时间:2023-09-26

我有一个javascript,onclick可以显示和隐藏定义style.display = "inherit";的元素和style.display = "none";。。

按下ESC按钮时,"隐藏"功能也在运行。。除了FIREFOX之外,CHROME、OPERA等中的一切都很好。。

    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/

感谢关注

语法上,您必须将事件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);
}

尝试低于

  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/