jQueryのoffメソッド
on を通じてバインドされたイベントの解除は、
off メソッドを使用して行われます。
第一引数にはイベントタイプ(例: 'click')を、第二引数には解除すべき関数名を受け取ります。
次の例を見てみましょう。以下のHTMLコードがあるとします:
<ul>
<li>テキスト</li>
<li>テキスト</li>
<li>テキスト</li>
</ul>
CSSでは li タグにスタイルを指定しています:
li {
width: 100px;
cursor: pointer;
}
li を最初にクリックした後、イベントが解除されるようにしてみましょう:
$('li').on('click', function() {
$(this).append('!');
$(this).off('click', func);
});
リスト項目をクリックしてみてください。同じ項目を再度クリックしても何も起こらないことがわかります。
これは、 append メソッドの実行後、
関数 func が off メソッドによって解除されるためです。
すべてのリンクにイベントをバインドしてください - リンクにマウスを乗せると、リンクテキストの末尾に
その href が括弧付きで追加されます。リンクに最初にマウスを乗せた後、hrefをテキストの末尾に追加する
イベントをそのリンクから解除してください。
すべてのinput要素について、どのinputがクリックされてもその value を出力するようにしてください。
ただし、最初のクリック時のみとします。inputを再度クリックしても反応しないようにしてください。
数値が含まれる段落があります。段落をクリックすると、そこに含まれる数値の2乗が表示されるようにしてください。 ただし、最初のクリック時のみとします。段落をダブルクリックすると、その段落の数値が2倍になるようにしてください。 これも最初の1回のみとします。