toggle()隠し問題の解決方法
1361 ワード
最近、インスタンスを作成するときにtoggle関数を使用しますが、呼び出すときに要素が隠され、以前に使用したことがあるのは複数のイベントが順番に切り替えられているだけです.よく考えられないので、ネットでjQuery APIドキュメントを検索してみました.やっと原因を発見しました.
元はjQuery 1.9バージョン以降、toggle()が変わりましたが、以下は公式サイトのNotesです.
Note: This method signature was deprecated in jQuery 1.8 and removed in jQuery 1.9. jQuery also provides an animation methodnamed .toggle() that toggles the visibility of elements. Whether the animation or the event method is fired depends on the set of argumentspassed.
以前のバージョンでは、同じ名前のtoggle()が2つ存在しましたが、実行方法は異なります.
.toggle( handler(eventObject), handler(eventObject) [, handler(eventObject) ] )
Description: Bind two or more handlers to the matched elements, to be executed on alternate clicks.
=====================================================
.toggle( [duration ] [, complete ] )
Description: Display or hide the matched elements.
その後のバージョンでは最初のtoggle()関数が削除され、スイッチング機能を呼び出すときに要素が非表示になります.
========================
この関数を削除した以上、需要を実現するにはやはり必要です.どのようにして複数のイベントの交代を実現しましたか?
clickイベントによって異なる状況を判断してトリガしたり、変数カウントクリック回数を設定して異なる関数を実行したりすることができます.
元はjQuery 1.9バージョン以降、toggle()が変わりましたが、以下は公式サイトのNotesです.
Note: This method signature was deprecated in jQuery 1.8 and removed in jQuery 1.9. jQuery also provides an animation methodnamed .toggle() that toggles the visibility of elements. Whether the animation or the event method is fired depends on the set of argumentspassed.
以前のバージョンでは、同じ名前のtoggle()が2つ存在しましたが、実行方法は異なります.
.toggle( handler(eventObject), handler(eventObject) [, handler(eventObject) ] )
Description: Bind two or more handlers to the matched elements, to be executed on alternate clicks.
=====================================================
.toggle( [duration ] [, complete ] )
Description: Display or hide the matched elements.
その後のバージョンでは最初のtoggle()関数が削除され、スイッチング機能を呼び出すときに要素が非表示になります.
========================
この関数を削除した以上、需要を実現するにはやはり必要です.どのようにして複数のイベントの交代を実現しましたか?
clickイベントによって異なる状況を判断してトリガしたり、変数カウントクリック回数を設定して異なる関数を実行したりすることができます.
var num=0;
$('#button').click(function(e){
if(num++ %2 == 0){
//doSomething
}else{
//doOtherSomething
}
e.preventDefault(); // ( )
});