2014-01-16 18 views
0

在下面的腳本中,我將元素設置爲可見或隱藏,因爲您可以看到。但是,一旦顯示.closeAdd,如果腳本進入if語句的第二部分,它將不會隱藏。我注意到,jQuery在使用show()時將它設置爲display:block。任何想法如何設置這個權利?jQuery是(':visible')是(':hidden')不按預期方式工作

if(type === 'user' && action === 'add') { 
    if($('.closeAdd').is(':hidden')) { 
     $('.closeAdd').show(); 
    } 
} else { //If it's visible and it comes to this part, it will not hide... 
    if($('.closeAdd').is(':visible')) { 
     $('.closeAdd').hide(); 
    } 
} 
+0

使用'嘗試,如果($( 'closeAdd')的CSS( 「顯示」)== 'block')'或'hidden' –

+0

@ G.Mendes工作正常。你知道當使用show()時,jQuery是否在所有'OS'和'browsers'上將'display'設置爲'block'? – jmenezes

+0

是的,你也可以查看文檔,如果有任何問題,http://www.w3schools.com/cssref/pr_class_display.asp –

回答

1

由於顯示正在更新您可以檢查它在你的功能,因爲它如下:

if(type === 'user' && action === 'add') { 
    if($('.closeAdd').css("display") == 'none') { 
    $('.closeAdd').show(); 
    } 
} else { 
    if($('.closeAdd').css("display") == 'block') { 
    $('.closeAdd').hide(); 
    } 
} 
+1

它不適用於隱藏。只有'沒有'的作品。 – jmenezes

+0

@jmenezes很好記,我更新了答案 –