ため
多くのおかげであなたが追加することによって、あなたのこの機能では、以前のアニメーションを停止することができます.stop(true, true)
あなたはこの改訂版の関数で参照してください。あなたが上でこれを呼び出すので
function fadeOutItems(ele, delay) {
var $$ = $(ele), $n = $$.next();
// Toggle the active class
$$.toggleClass('active');
// Ensure the next element exists and has the correct nodeType
// of an unordered list aka "UL"
if ($n.length && $n[0].nodeName === 'UL') {
$('li', $n).each(function(i) {
// Determine whether to use a fade effect or a very quick
// sliding effect
delay ? $(this).stop(true, true).delay(i * 400).fadeToggle('slow') : $(this).stop(true, true).slideToggle('fast');
});
}
}
両方現在アクティブなタブと新しくアクティブなタブがある場合、現在アクティブなタブで進行中のアニメーションをすべて停止する必要があります。
詳細については、.stop()のjQueryドキュメントを参照してください。
さらにこのコードを見ると、文字通りあなたの質問に答えることができます(以前のタブのループを止めて次のタブを開始します)。しかし、部分的にのみ展開されたタブの項目を残します。それがあなたの望むものなら、それはそうするでしょう。
もしそれがあなたの望むものでなければ、現在実行中のアニメーションを停止するだけでなく、古いタブのすべてのアイテムを同じ状態にするために、コードをさらに修正する必要があります。
私が疑ったように、実際にあなたが求めた以上のもの(最新のコメントごと)が必要です。以前の状態に関係なく、以前の項目を非表示にします。このコードを使って、slideToggle()
をslideUp()
に変更しました。アニメーションがまだ開始されていない場合は、トグルが間違った方向に移動するため、トグルの形式を使用することはできません(状態を逆転させるだけです)。代わりに、非表示になっているアイテムで終わる最終的なアニメーションを使用する必要があります。あなたは、私がslideUp()
を使用し、このコードを使用することができますが、あなたが望んでいた場合は、別の何かを選ぶことができます:http://jsfiddle.net/jfriend00/rzd3N/:あなたがここにアクションでそれを見ることができます
// A helper function that allows multiple LI elements to be either
// faded in or out or slide toggled up and down
function fadeOutItems(ele, show) {
var $$ = $(ele), $n = $$.next();
// Toggle the active class
$$.toggleClass('active');
// Ensure the next element exists and has the correct nodeType
// of an unordered list aka "UL"
if ($n.length && $n[0].nodeName === 'UL') {
$('li', $n).each(function(i) {
// Determine whether to use a fade effect or a very quick
// sliding effect
show ? $(this).stop(true, true).delay(i * 400).fadeToggle('slow') : $(this).stop(true, true).slideUp('fast');
});
}
}
。
多くのおかげで、jfriend00。私は今テストする立場にはいないが、できるだけ早く行い、報告する。時間をかけて助けてくれてありがとう。 – michaelmcgurk
こんにちは。私が必要とするものは100%ではありません。タブ1をクリックしてからタブ2をクリックすると、タブ1の内容がすべて完全にロードされ、タブ2が読み込まれます。タブ1の内容を完全に閉じて、タブ2をロードしたいとします。 – michaelmcgurk
アニメーションを再開するにはタブ1は開いたままにしておきます。タブ2をクリックしたときにそれを閉じる方法はありますか? – michaelmcgurk