0

使用 jQuery 1.4.2,:hidden 过滤器不会过滤掉隐藏的元素,但我通过调用 show() 使其可见。过滤器假定它仍然是隐藏的。

这是错误还是我错过了什么?考虑以下代码:

$("td.ms-authoringcontrols > span[id*='_ParallelApprovers']:hidden:first").css("display")
"none"
$("td.ms-authoringcontrols > span[id*='_ParallelApprovers']:hidden:first").show()
Object
$("td.ms-authoringcontrols > span[id*='_ParallelApprovers']:hidden:first").css("display")
"inline" // ?? Let me scratch my head...
$("td.ms-authoringcontrols > span[id*='_ParallelApprovers']:hidden:first").is(":hidden")
true //element with "display:inline", visible in browser, but yet it is hidden

而不是“内联”,您会期望“无”,因为使用了 :hidden 过滤器。

它所做的是从一组对象中选择第一个隐藏元素。每次我调用这些代码行时,我希望他们选择下一个隐藏元素(不是我刚刚展示的那个)。

4

1 回答 1

2

.show()假设线性发生,您的代码将是正确的。但是.show()会启动一个以显示对象结束的动画。如果您想在代码显示后执行代码,请使用带有动画长度和回调的替代形式.show(100,function(){})

于 2010-06-14T15:37:26.460 回答