http://jsfiddle.net/kXS4g/4/を参照してください
タブが選択解除されている場合にのみアニメーション化しています。jQuery uiには明らかに選択解除イベントがないため、「ui-tabs-selected」要素をカウントして選択を確認します(ゼロである必要があります)。残念ながら、このcssクラスは、selectコールバックが実行されるまで削除されないため、私が使用することを選択したハック的なアプローチは、関数呼び出しを遅らせるためにsetTimeoutでした。
また、そのタイミングを微調整することもできsetTimeout
ます。私はそれを少しいじりました、そしてあなたが速くクリックしたり、コンピュータがハングしたりすると、それは少し信頼できませんでした。20ms未満のものは感知できません。
stop(false,false)
もう1つのトリック(高速切り替えの二重アニメーションを防ぐために使用できます)は、アニメーションが左から続行しようとします。つまり、タブを開いてアニメーションの途中で閉じると、アニメーションはキューに入れられるのではなく、すぐに逆方向に循環します。
問題が発生した場合は、その選択解除を検出するためのより正式な方法を調査することを検討してくださいsetTimeout(..., 20)
。私はあなたのためにそれを機能させたかっただけです。
最後に、console.logを使用して、いつイベントが発生したかを把握しました。cssクラスがいつ追加/削除されるかについての仮定と同様に、タブを選択したときにのみselectが起動されるという私の期待は誤りでした。ブレークポイントも同様に機能します(FirebugまたはChromeですぐに利用できます)。マニュアルがこれらの詳細に触れていない場合があります。