2013-06-13 13 views
6

私は、ブートストラップはJavaScriptを読んし、次のコードに気づいた。それは"click.modal.data-api"である理由イベント名としてclick.modal.data-apiとはどういう意味ですか?

$(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) { 
    //do something 
}); 

誰かが私に説明できます。イベント後のドットは何をしていますか?たぶん私は目が見えませんが、私はこれについて話すドキュメンテーションを見つけることはできません。

+0

以上のドキュメントを読む

$(document).trigger('click.modal.data-api'); 

$(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) { //do something }); 

これは、あなたがこれを行うことによって、単にトリガーできるイベントハンドラの宣言であり、参考までに、これはセレクタとは関係ありません。セレクタは、 '$'に渡す文字列、または '.on'の第2引数です。この場合、あなたはイベント名について話しています。 –

+0

あなたの助けてくれてありがとうFelix.私は非常に始めることはできませんでしたが、あなたの説明は非常に有用でした。 – aashtonk

+0

あなたは大歓迎です:) –

答えて

3

これは名前空間イベントであり、the documentation [docs]はかなりうまく説明:

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

0

私はこれについて完全にはわかりませんが、私はそれが "個人的なイベントトリガー"のようなものだと思います。私はそれをより良く説明します:自分のイベントリスナーを定義し、いつでもそれらをトリガーすることができます。たとえば、イベントmyEventを定義し、.trigger('myEvent')を実行するだけでイベントをトリガすることができます。ここで少しスニペットで約.trigger().bind().on()

+1

これは、実際にはカスタムイベントではありません。なぜなら、 'click'は標準イベントであるからです。これは "名前空間"のイベントです。 –

関連する問題