2009-11-23 32 views
1

在jQuery代碼中,我動態地顯示和隱藏了一些內容。jquery中的hide()

  if (this.hide()) { 

       this.show(); 
           } 
      else { 
       alert("Hello"); 
       this.hide(); 

      } 

但是其他部分永遠不會被執行。爲什麼?

回答

4

我會做這樣的事情:

if($(this).is(':hidden')) { 
    $(this).show(); 
} 
else { 
    $(this).hide(); 
} 

還是取決於你想要做什麼,你可以嘗試toggle()

+3

在大多數情況下,我會選擇切換選項。 – Kezzer 2009-11-23 12:15:45

0

在如果你是hidding的元素。 你應該做this.is(「:隱藏」)

2

你在找什麼是

this.toggle(); 

你永遠達不到你的「其他」條款的原因是因爲hide()返回找到的元素選擇器(用於方法鏈接原因)。因爲它總是會返回一個有效的對象,它會永遠解析爲「truthy」,即不null, "", 0, false

1

this.hide()正在運行的隱藏功能,沒有檢查,如果它是隱藏的,因此它是將其設置爲隱藏,然後運行this.show()

已經說過toggle()是你想要的,因爲它爲你做了檢查,而不必爲此編碼。