0

このコード:

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

iPad の場合、true と表示される 2 つのアラートが表示されます。これはどのように可能ですか?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 に答える