2010-07-16 54 views
0
失敗

我有以下的javascriptJavaScript的隱藏/顯示在IE8

function hide(id) 
{ 
    var ele = document.getElementById(id); 
    if ((ele.style.display == 'none') || (ele.style.display == '')) { 
    try{ 
    ele.style.display = 'table-row'; 
    } 
    catch (e) 
    { 
    ele.style.display='block'; 
    }} 
    else {ele.style.display = 'none';} 
} 

這在IE7,鉻,FF作品,但在IE8

失敗

我必須得到它在IE8即使工作它在chrome或ff中失敗。

我相信這個問題是'ele.style.display = 'table-row'

什麼想法?在此先感謝

+0

你是什麼意思'失敗'? 'try'語句應該捕獲任何錯誤並將'display'設置爲'block'? – ScottS 2010-07-16 14:12:56

+0

依靠瀏覽器拋出異常,因爲「table-row」對某些元素來說不是一個有效的「顯示」值,因此它首先不是一個好主意,因爲它不是*無效。 – Pointy 2010-07-16 14:17:01

回答

-1

你爲什麼不使用:

function toggle(id) { 
    var el = document.getElementById(id); 
    el.style.display = (el.style.display == "none" || el.style.display == "") ? "block" : "none"; 
} 
+0

因爲盲目設置某些內容「顯示:阻止」不是一個好主意。如果它應該是「display:inline」呢?或者「display:table-cell」? – Pointy 2010-07-16 14:16:00

0

不知道你正在經歷在IE8失敗,但你可能在你的if這個改變:

​​

到這個:

ele.style.display == undefined