0

この質問では div の可視性を切り替えるときにイージング設定を使用すると、トグルの現在の状態を判断できなくなることがわかりました。

jsFiddleには、次の行があります。

$(this).next('div.detailsTable').toggle('blind', 'easeInOutQuart', 300);
$(this).next('div.detailsTable').toggle();

それぞれを交互にコメントアウトし、".is(':visible')" をチェックする if ステートメントは、最初の行が常に false (表示されない) を示していることを示しています。

コンソールで HTML を見ると、非表示/表示されている div に表示プロパティ (なしまたは表示) が設定されることはありません。

上にリンクされている jsFiddle に移動し、それらの各行を交互にコメントアウトすると、私の意味がわかります。

jsFiddle のコードに問題がある場合はお知らせください。それ以外の場合は、これを回避してトグル状態を判断し、各状態に応じて何かを行うことができますか?

4

1 に答える 1

2

トグルの終了時にコールバックを使用するだけです。そうしないと、アニメーションの終了前にテストが実行されます

.toggle('blind', 'easeInOutQuart', 300, function(){
    if ($(this).is(':visible')) {
        alert('visible');
    } else {
        alert('not visible');
    }
});

http://jsfiddle.net/wWaDm/7/

于 2013-02-25T13:17:30.493 に答える