比方說,我有2個元素,div1和div2。當我點擊div1時,div2應該在visibility=hidden
和visibility=visible
之間.toggleClass()
。這工作正常。但是,當我嘗試這個:如何檢查元素visibility = hidden是否爲true jQuery
if($('#div2').css('visibility') == 'hidden') {
$('#div1').replaceWith('<span> Duh </span>');
}
沒有真正發生。如果我將'hidden'
更改爲'visible'
,它工作得很好。但那不是我想要的。我知道當可見性=隱藏在使用中時,元素仍然被視爲可見,但是不要檢查元素的樣式是否設置爲visibility = hidden?在我的情況下應該是真的。
我也試過
if($('#div2').hasClass('visHidden')) {
$('#div1').replaceWith('<span> Duh </span>');
}
但沒有任何反應。
難道問題是DOM何時加載visHidden和visVisible類都沒有設置?因爲如果元素被點擊,我只用jQuery來設置它們。如果是這種情況,有沒有辦法繞過它?我無法使用顯示屬性。
你能提供的jsfiddle? – Pouki
什麼時候執行snipplets? (它聽起來像你期望的代碼會導致div1自動更新,當你改變div2的類) – subsub
@subsub你是絕對正確的。我添加了一個刷新按鈕:'$('#refresh')。click(function(){...}'之後,if語句正確執行,感謝您指出應該顯而易見的東西.. – user2829315