0

私は以下のコードを持っています:

$("button").click(function(){
    $("button").off('click');  //detach click for the button below
}

次に、<body>タグの下にこのボタンがあります

<button>PLAY ANIMATION</button>

問題は、このコードを下のどこに配置できるかということです。

$("button").bind('click'); // In other words I want to 
//reattach the click event that I just disabled at some later point
4

3 に答える 3

2

実際のデモ http://jsfiddle.net/2NNGv/1/

.is(":animated")チェックもできます!

jQuery ajax、beforeSend アニメーションが終了するまで待ちます

それが原因に適合し、:)あなたにアイデアを与えることを願っています!

サンプルコード

$("button").click(function() {

    $(this).prop('disabled', 'disabled');

    $('div').animate({
        marginLeft: "-200",
        marginTop: "-200",
        width: "400",
        height: "400"
        // Comment the line below to see difference
        ,
        opacity: 0.5
    }, 2000).animate({
        marginLeft: -150,
        marginTop: -150,
        width: 300,
        height: 300
        // Comment the line below to see difference
        ,
        opacity: 1
    }, 2000).show(function() {
        $("button").removeAttr('disabled');
    });

});​
于 2012-10-12T03:58:54.043 に答える
1

を使用.promise()してアニメーションが終了するのを待ち、後でクリック イベントをアタッチします。

ここの例を参照してください: http://jsfiddle.net/RASG/gkveX/

Promise オブジェクトを返して、コレクションにバインドされた特定のタイプのすべてのアクション (キューに入れられているかどうかに関係なく) がいつ終了したかを監視します。

ドキュメントはこちら: http://api.jquery.com/promise/

于 2012-10-12T03:54:20.183 に答える
0

バインドとアンバインドを試しましたか?

$('#foo').bind('click', function() {
  alert('The quick brown fox jumps over the lazy dog.');
});

// will NOT work
$('#foo').unbind('click', function() {
  alert('The quick brown fox jumps over the lazy dog.');
});

ここにソースがありますhttp://api.jquery.com/unbind/

アニメーション中にボタンをバインドしてバインドを解除し、再度バインドしてクリック イベントを有効にすることができます。

于 2012-10-12T03:50:17.737 に答える