イベントのネームスペースを使用すると、特定のイベントをターゲットにすることができます。たとえば、バインドを解除したり、トリガーしたりする必要があります。
同じ要素にバインドされた同じ種類の 2 つのイベントがあるとします。
$('.something').on('click', function() { /* do something */ });
$('.something').on('click', function() { /* do something else */ });
どちらのイベントにも名前空間を設定しなかったため、一方をアンバインドまたはトリガーすることは難しくなりましたが、もう一方はトリガーできません。今考えてみましょう:
$('.something').on('click.one', function() { /* do something */ });
$('.something').on('click.two', function() { /* do something else */ });
今回は、各イベントに独自の名前空間があるため、どちらか一方をトリガーまたはアンバインドして、もう一方をそのままにしておくことができます。
$('.something').off('click.one'); //unbind the 'one' click event
$('.something').trigger('click.two'); //simulate the 'two' click event
[編集- @jfrej が以下で指摘しているように、名前空間は、イベント タイプ名を参照する必要さえない場合があることを意味します。したがって、マウスオーバーとクリックの両方のイベントが 1 つの名前空間にある場合は、両方をバインド解除できますoff('.namespace')
。]