2011-03-10 85 views
0

單擊我的定位標記(如下所示)不會隱藏notify-parent div。通知父母div正確地隱藏在IE7和IE8中,但不在Firefox中。onClick事件不適用於Firefox中的定位標記

<script type="text/javascript"> 
    function checkClick(e) { 
     var obj = e.srcElement; 
     if (obj.id != "notify-parent") 
      document.getElementById('notify-parent').style.display = 'none'; 

     return; 
    } 
</script> 

<div id="notify-parent" style="padding-bottom: 10px; margin-top: -10px;"> 
    <table width="800"> 
     <tr> 
      <td> 
       &nbsp; 
      </td> 
     </tr> 
     <tr> 
      <td align="center"> 
       <div id="notify-container"> 
        <table style="padding: 10 10 10 10"> 
         <tr> 
          <td>&nbsp; 
          </td> 
          <td>&nbsp; 
          </td> 
          <td align="right"> 
           <a class="close-notify" onclick="checkClick(event);return false" title="dismiss this notification"> 
            ×</a> 
          </td> 
         </tr> 
         <tr> 
          <td>&nbsp; 
          </td> 
          <td> 
           A message goes here 
          </td> 
         </tr> 
         <td>&nbsp; 
         </td> 
        </table> 
       </div> 
      </td> 
     </tr> 
    </table> 
</div> 

我試過添加href =「#」但沒有解決問題。

我在做什麼錯?

回答

2

firefox中的事件對象沒有srcElement。我可以從視覺上看到這個螢火蟲。你可以考慮使用目標。你也可以使用一個JavaScript框架來跨瀏覽器標準化。無法記住,但我相信JQuery能做到這一點。

Firebug是令人敬畏的順便說一句。我設置了一個斷點幷包含一個屏幕截圖,以便您可以確切地看到firefox上的事件對象。

FirebugBreakpoint

另見https://developer.mozilla.org/en/DOM/event作爲參考。

event.target ::一個參考目標,以該事件原本派出

0

好,我覺得onclick事件在IE工作的罰款。我認爲你的問題是JavaScript事件處理髮生的方式,這在IE中起作用,但我認爲它不適用於Firefox。

您可以通過添加警報(「test」)來驗證在Firefox中進行的調用;到第一線,它應該拿出...

,而不是試圖做這關事件模​​型爲什麼不直接傳遞給函數你想知道的數據...

function checkClick(id) { 
     if (id != "notify-parent") 
      document.getElementById('notify-parent').style.display = 'none'; 

     return; 
    } 

再向下下面你這樣稱呼它......

<a class="close-notify" onclick="checkClick('notify-container');return false" title="dismiss this notification"> 

,因爲每一個瀏覽器實現不同事件模型它將爲您節省大量的頭痛。

2

你可以嘗試回落到目標。

var obj = e.srcElement? e.srcElement : e.target; 
相關問題