0

いくつかのjQueryアニメーションをいじる過程で、私はなんとか自分自身を少し束縛することに成功しました(私は使用できません.unbind())。

「非アクティブ」ブロックのセットがあり、それらをクリックしdiv#trayて「アクティブ」ブロックと交換できるようにしたいと考えています。div#mainブロックのアニメーション化は、クリックするとすぐに実行されますが、スワップを作成するほど、スワップアンドアニメーション機能に到達するまでの時間が長くなります。ステップが明らかにスキップされるため、最終的には崩壊します。

なぜこれが(ある種のタイミングの問題?)なのか理解できないので、コードを使用してjsFiddleを作成しました。洞察をいただければ幸いです。

4

2 に答える 2

1

アニメーションが終了するたびにクリックイベントを添付します。これらは単に積み重なって、速度低下を引き起こします。これを解決する最も簡単な方法は、すべてのクリックをバインド解除してから再バインドすることです。

function setupActiveBlockSwitcher() {
    $('.block').unbind('click');
    ...

これは解決策ですが、それほど優れているわけではありません。アニメーションが終了するたびにイベントを再バインドする必要がないように、コードを再編成することをお勧めします。

于 2013-03-06T01:56:47.163 に答える
1

コードを更新しました。

主な問題は、ブロック、特に特定の反復でクリックされなかったブロックにイベントハンドラーを繰り返し割り当てていたことでした。

この更新されたコードを使用しclickて、コンテナー自体にハンドラーを適用し、event.target実際にクリックされたブロックを取得するために使用しています。

また、アニメーション機能から「再設定」コードを削除しました。

于 2013-03-06T01:58:41.967 に答える