0

这段代码:

$('#x').hide();
$('#y').hide();
alert($('#y').is(":visible"));
alert($('#x').is(":visible"));

在 ipad 上时,显示两个警报,它们说的是真的。这怎么可能?在 Chrome 上,它们显示为 false,正如它们应该显示的那样。

4

2 回答 2

2

您应该使用回调参数:

$('#x').hide(0, function() {
    alert($('#y').is(":visible"));
});

该函数仅在动画完成时执行。虽然,这应该在没有任何动画的情况下完成......

于 2012-08-31T12:51:27.690 回答
1

我认为 jQuery 在解释下一个代码之前不会等待动画完成。也许 iPad 的解释比隐藏更快,因此这两个元素仍然可见。

您可以使用window.setTimeout

于 2012-08-31T12:47:02.807 回答