jQuery 1.9 以降を使用していると仮定すると、問題は.toggle()
イベント処理メソッドがライブラリから削除されたことです。したがって、実際に呼び出しているのは、.toggle()
要素を非表示/表示する関数です。(以前のバージョンの jQuery では、両方の関数が存在し、jQuery は渡された引数に基づいて、どちらを意味するかを判断しました。)
.click()
標準のハンドラーを使用して、独自のトグルを簡単に実装できます。
$("#bold").click(function() {
var f = !$(this).data("toggleFlag");
if (f) {
$('.focus').css("font-weight", $(this).val());
} else {
$('.focus').css("font-weight", "normal");
}
$(this).data("toggleFlag", f);
});
これは.data()
メソッドを使用してブール値フラグを追跡し、実行するコードを示します。クリック ハンドラーが初めて呼び出されると、フラグはundefined
以前に設定されていないため as が返されますが、それをブール値に変換するだけ!
です (最初のクリックで if を実行し、else ケースを実行したくない場合)。 )。