3

jQuery1.7.2を使用するアプリケーションを継承しました。

アプリケーション全体で、次のようなコードがあります。

$('#quotation').off("click").on("click", function(){
     // do something here...
}

今、私は上記の問題を理解しています。しかし、時々私たちのコードで私はこのようなものに出くわします:

$('#continue').off("click.products").on("click.products", function(){
     // do something here...
}

アプリケーション全体を通して、私はclick.productsまたはを見つけますclick.orders。それに続くものは完全に.ランダムなテキストである可能性があるようです。

clickとの違いは何click.productsですか?

4

1 に答える 1

4

このコードは、自分自身またはプラグインによって定義されたカスタム名前空間イベントを使用します。

イベント名は、イベントの削除またはトリガーを簡素化するイベント名前空間で修飾できます。たとえば、「click.myPlugin.simple」は、この特定のクリックイベントのmyPluginと単純な名前空間の両方を定義します。その文字列を介してアタッチされたクリックイベントハンドラーは、要素にアタッチされた他のクリックハンドラーを妨げることなく、.off( "click.myPlugin")または.off( "click.simple")で削除できます。名前空間は、階層的ではないという点でCSSクラスに似ています。一致する必要があるのは1つの名前だけです。アンダースコアで始まる名前空間は、jQueryで使用するために予約されています。

onドキュメント

ライブデモ

$('#a').on('click.bar', function() {
    console.log('bar');
});

$('#a').on('click.foo', function() {
    console.log('foo');
});


$('#b').click(function() {
    $('#a').trigger('click.foo');
});​

#a両方のクリックハンドラー(fooとbar)をクリックすると発生しますが、クリックするとfoo
のみが発生#bします。

于 2012-06-10T09:54:04.123 に答える