2012-04-30 11 views
2

は私が盲目たり、何のパラメータ、オプションまたは何のためのアニメーションを無効にすることはありません必要はありません切り替えますtoggle()経由ではなく、私はslideToggle、fadeToggle、または通常のトグルを使用するすべてのトグルはアニメーションを使用しています。jQueryのにはアニメーションが

「削除」するにはどうすればよいですか?

+2

限り、あなたは「ドンとしてあなたのコード – Curt

+0

を投稿してくださいしないように、真の解決)(トグルする確認パラメータを作る効果をオフにトグルする時間を指定すると、即時になるはずです。あなたのコードを教えてください。 – j08691

+0

私は要素上で.toggle()を持つ単純なクリックハンドラを使用します。なぜ下の票? – ggzone

答えて

12

ちょうど1

toggle(1); // animation 
toggle(true); // no animation. 
+6

これは私のためには機能しませんでした。トグル(true)を設定すると、コンテンツを再び非表示にすることしかできないことを意味しました。 – Will

3

あなたは常にあなた自身のトグル機能を提供することができます:

$.fn.quicktoggle = function() { 
    this.each(function() { 
     var $this = $(this); 
     if ($this.is(':visible')) { 
      $this.hide(); 
     } else { 
      $this.show(); 
     } 
    }); 
    return this; 
}; 
+0

最後に余分な ')'があると思います – thecodeparadox

+0

@thecodeparadox oopsie - well spotted。 – Alnitak

+0

この関数をお寄せいただきありがとうございます – ggzone

0

Aもう少し「課す」メソッドは、あなたが簡単にあなたのコード内のすべてのインスタンスを置き換えたい場合は、関数をオーバーライドすることです。

$.fn.slideToggle = function(duration, callback) { 
    duration = 0; 
    callback = callback || function(){}; 
    this.toggle(duration, callback); 
}; 

$.fn.fadeToggle = function(duration, callback) { 
    duration = 0; 
    callback = callback || function(){}; 
    this.toggle(duration, callback); 
}; 

DEMO:http://jsfiddle.net/bChVe/3/

+0

Hmmm ...この方法はduration引数とコールバックに問題があります...秒で編集します –

+0

0に適切なコールバックと強制継続時間で編集 –

+0

私は '$をラップする必要はありません) 'jQueryプラグインの中にあります。 – Alnitak

1

ただ、引数なしでトグルを使用し、それはすぐにする必要があります。ドキュメントから

:なしパラメータで

、.toggle()メソッドは、単純に要素の可視性 を切り替え:

$('.target').toggle(); 
+0

を反映するように更新...引数なしの.toggle()は、表示または非表示を切り替えるだけでなく、継続時間の高さと幅のアニメーションも切り替えます。私はそのドキュメントが間違っていることを知っています。最後の安定したjqueryバージョンを使用しています。 – ggzone

+0

jQuery 1.7を使ってjsfiddleに投稿する前に自分自身で試してみました。可視性をトグルしました – izb

6

トグル()は引数がない場合、即時であります供給される。

slideToggle()およびfadeToggle()は、アニメーションにデフォルト値を使用して、それらを即時にし、値 '0'を渡します。

これらすべてが同じことをやるだけの要素を示し、非表示にします。

$('button').on('click', function() { 
    ToggleElement.toggle(); 
}); 

$('button').on('click', function() { 
    ToggleElement.slideToggle(0); 
}); 

$('button').on('click', function() { 
    ToggleElement.fadeToggle(0); 
}); 

FIDDLE

敗北のその種点として、アニメーションせずに下の二つを使用する理由はしかし、ありません。

if/else文でJavaScriptのネイティブelement.style.display = 'none'/'block'を使用するのが少し速くなります。

2

だけ

jQuery.fx.off = true; 
関連する問題