2012-09-18 129 views
0

我有一个无序列表,其li s是不可见的(display:none)开头。fadeIn()使用jQuery隐藏列表项目

我想使一个特定的li可见与JS功能。我怎样才能做到这一点?

我试过$("#my-list li:nth-child(1)").fadeIn()但只有在ul开始时才有效。

这里是我的代码:

ul.hide > li { 
    display: none; 
} 
<ul class="hide" id="my-list"> 
    <li>1</li> 
    <li>2</li> 
    <li>3</li> 
</ul> 

我试图回答this question。随意尝试一下吧!

+5

做了'ul'可见。一个不可见的元素不能有可见的孩子。 – bdares

+3

你试过的代码工作正常..但我没有隐藏主'ul'请参见:http://jsfiddle.net/akhurshid/PSQMd/ –

回答

0

就像bdares说的那样,一个看不见的元素不能有一个可见的孩子。所以你对代码的描述是真的:ul必须首先可见。

看着html代码,你可能只需删除class="hide"这将使ul可见。

但是,如果你不能这样做,另一种方法是使用Javascript来使飞行中的UI可见。取而代之的只是:

$("#my-list li:nth-child(1)").fadeIn(); 

$("#my-list").show(); 
$("#my-list li:nth-child(1)").fadeIn(); 
0

用这样的方式:

$("#my-list").show(0).children("li:nth-child(1)").fadeIn();

$("#my-list").show().children("li:nth-child(1)").fadeIn();

让我解释一下你为什么 .show(0).show()更好。当你使用 .show()时,它给出了一个转换,它简化了不需要的DOM元素。这就像展示了一个隐藏的元素并且顺利隐藏它,这是不被接受的。

+3

'.show(0)'?为什么? '.show()'也会起作用。 – Ryan

+0

更新了答案中的原因。 –

+0

@PraveenKumar请检查http://api.jquery.com/show/的文档,而不是像您所说的。 – xdazz