unbindメソッドは、<event>(fnc)、bind、hover、one、toggleなどのメソッドによって関連付けたイベント・リスナを破棄(イベント・リスナが関連付いていない状態に)します。
引数type(イベント)、fnc(イベント・リスナ)を指定することで、特定のイベント・リスナのみを破棄することもできますし、引数typeのみを指定した場合には、イベントに対応するすべてのイベント・リスナを破棄できます。また、引数がすべて省略された場合、要素セットに関連付いたすべてのイベント・リスナを破棄します。
では、具体的な例を見てみましょう。以下は、入力要素に対して関連付いたfocus/blurイベント・リスナのうち、blurイベント・リスナのみを破棄する例です。
<script type="text/javascript">
$(function() {
  // 入力要素に対してイベント・リスナを登録
  $(':input').
    // フォーカス時に背景色をライムに
    focus(function() {
      $(this).css('backgroundColor', 'Lime');
    }).
    // フォーカスが外れたときに背景色を白色に
    blur(function() {
      $(this).css('backgroundColor', 'White');
    });
  // blurイベント・リスナのみをアンバインド
  $(':input').unbind('blur');
});
</script>
  ……中略……
<form>
  名前:<input type="text" id="name" size="15" /><br />
  性別:<select>
    <option>男</option>
    <option>女</option>
  </select>
</form>
テキストボックスにフォーカスした後、ほかにフォーカスを移動してみましょう。blurイベント・ハンドラを無効化していますので、図のようにテキストボックスの背景色は白色には戻ら“ない”ことが確認できるはずです。
Copyright© Digital Advantage Corp. All Rights Reserved.