2014-01-16 19 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很好记,我更新了答案 –