0

この情報に基づいて、がアニメーション化されているかどうかを評価し、クリック演算子をブロックする方法について問題がありました。:animatedその属性を壊すアニメーションにjQueryプラグインを使用していたため、使用できませんでした。Benjamin Powersは、カスタム属性を作成し、代わりにそれを評価することで、私の質問に答えました。(http://jsfiddle.net/g5mJd/22/

しかし、私はコードをいじっており、属性の代わりに変数を使用して効果を複製できるかどうか興味がありました。これが私の試みです:http://jsfiddle.net/g5mJd/24/

しかし、このコードは私の変数を永続的に変えないようですfalse

function() {
        $("#block").transition({
            x: '+=100'
        }, 500, function() {
            var anim = false;
    console.log(anim)
        })

コンソールログには変数がfalseと表示されますが、もう一度確認するとtrueになります。私は何が間違っているのですか?(完全なコードについては、jsfiddleを参照してください)

編集:だから私は今この関数がvar animを「false」に変えますが、これは即座に「true」に戻り、ボタンをクリックできなくなります(ボタンはanimが「false」の場合にのみクリックできます)

4

2 に答える 2

2

問題はvar、次のコード行にあります。

var anim = false;

これにより、同じ名前のローカル変数が作成されfalse、に設定されます。他の変数は更新されませんanim。削除var

anim = false;

...そしてそれはここに示されているように機能します:http://jsfiddle.net/g5mJd/25/

(フィドルのコードの上部にあるの宣言から削除しないでください。)varanim

于 2012-12-02T03:16:28.820 に答える
0

jqueryに:animatedセレクターを使用することもできます。

 $("#block").is(":animated")

トリックを行います。

于 2012-12-02T04:17:00.673 に答える