JavaScript

トップ > チップス > JavaScript
2014-05-14, js jquery

イベントハンドラを切り替える

これ、よくハマります。jQueryのclickやon,offメソッドでハンドラを複数登録すると、通常はセットになって全てが有効化されます。disableにするか、普通に.off("click")とやってしまうと全部のイベントが拾えなくなってしまいますが、一部だけは残したいという場合にはnamespaceの概念を使うとうまくいくようです。

以下のコードではボタンに登録した2つのハンドラ(関数)のうち2つめだけを無効化しています。

<button id="test">Test!</button>
<script>
    $("#test").on("click.1",function(){console.log("1!")});
    $("#test").on("click.2",function(){console.log("2!")});
    $("#test").off("click.2");
</script>

参考URL

この記事は役に立ちましたか?