jqueryにおけるbindイベント時のネーミングスペースの使い方


  • シーン:ページ上の要素bindの複数のclickイベント処理関数は、ユーザーの具体的なインタラクション状況に応じて、どの処理関数を使用するかを決定します.
  • 質問:
  • unbindではすべてのclickイベントが解縛され、誤傷を引き起こす.前のbindに処理関数を定義するメソッド名がある場合、指定したbindをバインドするには、unbindの2番目のパラメータにメソッド名を渡すことによって解くことができる.しかしbindの処理関数が匿名関数である場合が多く,unbindの2番目のパラメータは処理できない.
  • clickイベント発生時に特定のイベント処理関数を呼び出すことを指定できず、呼び出されない関数をunbindに落とすしかありません.

  • 解決:ネーミングスペース、ネーミングスペース用法
  • <script type="text/javascript" src="jquery-1.7.1.min.js"></script>
    <input type="text" id="test">
    <script>
    $("#test").bind('click.a',function(){
    	alert(1);
    });
    $("#test").bind('click.b',function(){
    	alert(2);
    });
    $("#test").bind('click.c',function(){
    	alert(3);
    });
    $("#test").unbind('click.a');	//  a
    $("#test").trigger('click.c');	//  3
    $("#test").click();	//  2、  3
    </script>

    イベント (click)に'.'を ける しい を し、この でそれぞれ した しい a、b、cを することで、unbind に した を くことができます.triggerの 、 した を び すことができます. くのjs は、 のイベントを し、ページの のイベントと しないようにネーミングスペースを しています.