2013-06-13 9 views
6

ich durch Bootstraps JavaScript Lesen und bemerkte den folgenden Code:Was bedeutet click.modal.data-api als Ereignisname?

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

Kann mir jemand erklären, warum es "click.modal.data-api" ist. Was macht der Punkt nach dem Event? Vielleicht bin ich blind, aber ich finde keine Dokumentation, die darüber spricht.

+0

FYI, das hat nichts mit Selektoren zu tun. Der Selektor ist der String, den Sie an '$' übergeben oder als zweites Argument an '.on'. In diesem Fall sprechen Sie über den Namen des Ereignisses. –

+0

Vielen Dank für Ihre Hilfe Felix.Ich war nicht ganz sicher zu starten, aber Ihre Erklärung war sehr hilfreich. – aashtonk

+0

Gern geschehen :) –

Antwort

3

Dies ist ein Namespaced Ereignis und the documentation [docs] beschreibt es ziemlich gut:

Ein Ereignis Name von Ereignis-Namensräume qualifiziert werden kann, der das Ereignis vereinfachen das Entfernen oder auszulösen. Beispielsweise definiert "click.myPlugin.simple" sowohl das myPlugin als auch die einfachen Namespaces für dieses bestimmte click-Ereignis. Ein über diese Zeichenfolge angefügter Klickereignishandler kann mit .off("click.myPlugin") oder .off("click.simple") entfernt werden, ohne andere Klickhandler zu stören, die an den Elementen angebracht sind. Namespaces ähneln CSS-Klassen insofern, als sie nicht hierarchisch sind; nur ein Name muss übereinstimmen. Namensräume, die mit einem Unterstrich beginnen, sind für die Verwendung von jQuery reserviert.

0

Ich bin mir nicht ganz sicher darüber, aber ich denke, es ist eine Art von "persönlichen Ereignisauslösung". Ich erkläre es besser: Sie können Ihre eigenen Ereignis-Listener definieren und sie auslösen, wann immer Sie wollen. Zum Beispiel können Sie ein Ereignis myEvent definieren und es auslösen, indem Sie einfach .trigger('myEvent') ausführen. Hier ein kleiner Auszug:

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

Dies ist die Erklärung der Event-Handler, die Sie nur, indem Sie diese auslösen können:

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

mehr Dokumentation Lesen Sie mehr über .trigger(), .bind() und .on()

+1

Dies ist eigentlich kein benutzerdefiniertes Event, da 'click' ein Standard Event ist. Es ist ein "Namespace" -Event. –