引用OP:
「私は何を間違っていますか?」
jQuery documentationに従って、構文が間違っています。内に 2 つのコールバック関数を含めることはできませんtoggle()
。
.toggle( [デュレーション] [, イージング] [, コールバック] )
- duration - アニメーションの実行時間を決定する文字列または数値。
- easing - トランジションに使用するイージング関数を示す文字列。
- callback - アニメーションが完了したら呼び出す関数。
編集:
他の回答を読んだ後、jQueryの別のバージョンがtoggle()
あることがわかりました...
http://api.jquery.com/toggle-event/
.toggle( ハンドラ(イベントオブジェクト), ハンドラ(イベントオブジェクト) [,ハンドラ(イベントオブジェクト)] )
- handler(eventObject) - 要素がクリックされるたびに実行する関数。
- handler(eventObject) - 要素が奇数回クリックされるたびに実行する関数。
- handler(eventObject) - クリック後に循環する追加のハンドラー。
適切に実装すると、jQuery は次のようになります...
$(document).ready(function() {
$("#navSliderArrow").toggle(
function() {
$(this).animate({ marginLeft: '235' }, 500);
$("#sliderArrow").attr("src", "images/hide_nav.gif");
},
function() {
$(this).animate({ marginLeft: '0' }, 500);
$("#sliderArrow").attr("src", "images/show_nav.gif");
}
);
});
そして jQuery を使用すると、 のようなインライン JavaScript はまったく必要ありません<a href="#" onclick="togglethis()">
。HTML は次のようになります。
<a href="#" id="navSliderArrow">
HTMLがOPに含まれておらず、ターゲット要素がどうあるべきかわかりません。
jsFiddle デモ