この関数は引数の取り方で振る舞いが変わる。
表示、非表示の切り替えではなく、複数のクリックイベントハンドラを設定したい場合は
.toggle(handler(eventObject), handler(eventObject) [, handler(eventObject)])を利用する。
.toggle( [duration] [, callback] )
引数
- (string)duration
- (string)easing
jQueryオブジェクトが保持しているDOM要素が表示なら非表示に、非表示なら表示にする。
コールバックは1つの要素に対する動作が完了したときに実行される。対象が10個なら10回実行される。callback内のthisは対象要素。
サンプル
実行結果
toggle()
Javascript
$('#execute-1').on('click', (e) => {
$(e.target).closest('#sample-1').find('.photo').toggle('normal', function() {
console.log($(this).attr('alt'))
});
});
HTML
<div id="sample-1">
<img src="/resource/images/photos/5.jpg" alt="画像1" class="photo" style="width: 30%;">
<img src="/resource/images/photos/6.jpg" alt="画像2" class="photo" style="width: 30%;">
<div>
<span class="cq-btn m-primary" id="execute-1">toggle()</span>
</div>
</div>
.toggle( [duration] [, easing] [, callback] )
引数
- (string)duration
- (string)easing
- (function)callback