2013-02-20 89 views
0

我不能爲我的生活弄清楚爲什麼這個if語句不工作。javascript if語句檢查div是否可見不起作用

的retrieveInfo函數傳遞eventcodetarget div這裏看到:

onmouseover="return retreiveInfo(event, 'M003', 'target')"

我必須使用代碼,儘可能地爲學校提供作業。

function retreiveInfo(e, movieCode, div) { 
    if(e.pageX) { 
     this.x = e.pageX; 
    } else { 
     this.x = e.clientX; 
    } 
    if(e.pageY) { 
     this.y = e.pageY; 
    } else { 
     this.y = e.clientY; 
    } 

    div = document.getElementById(div); 

    if(div.style.visibility == "visible") { 
     console.log("More Good"); 
    } 
    else if(div.style.visibility == "hidden"){ 
     console.log("Hidden"); 
    } 
} 

回答

4

僅當HTML標記包含「樣式」屬性或其代碼已在其他位置修改時,才檢查「樣式」對象。如果有CSS使對象的「可見性」屬性「隱藏」,則無法通過該方法分辨出來。

還有其他的方法,供對象是不可見的還有:

  • display: none
  • position: absolute; left: -10000px;

等元素可以是已隱藏,以及其他元素中。因此,確定DOM中的特定元素是否可見並不總是一個簡單的任務:-)

現在,如果一些代碼的其他地方不一樣的東西:

document.getElementById(whatever).style.visibility = "hidden"; 

那麼你的代碼應該做工精細。

+0

謝謝。在HTML標記中放置'visibility'而不是CSS效果很好。 – coryrwest 2013-02-20 20:26:21