2016-04-17 13 views
1

Ich lese durch MaterializeCSS ‚s js Dateien, in seiner‚cards.js‘Datei gibt es diese Zeilen:jQuery (Dokument) .on ('click.klassname' .......)?

$(document).on('click.card', '.card', function (e) { 
    //something 
}); 

Ich bin nicht vertraut mit .on() Funktion jQuery, aber ich habe nie benutzerdefiniertes Ereignis wie die verwendeten erster Parameter Was ich nicht verstehe ist, dass es nirgendwo dieses benutzerdefinierte Ereignis zu definieren click.card (wenn es ein benutzerdefiniertes Ereignis ist), weil ich nur diese card.js und eine andere velocity.min.js Datei aus dem MaterializeCSS-Paket neben jQuery laden, und ich suchte velocity.min.js gibt es nichts im Zusammenhang mit diesem Ereignis. Es scheint mir, dass das benutzerdefinierte Ereignis in diesem Muster ist: original event. classname, aber ich habe versucht, card mit anderen Klassennamen zu ersetzen und es hat nicht funktioniert.

Ich habe versucht, nach weiteren Informationen darüber zu suchen, wie ein benutzerdefiniertes Ereignis definiert wird, aber nichts nützliches finden konnte.

Meine Frage ist, wie Sie herausfinden, wo dieses benutzerdefinierte Ereignis definiert ist.

Antwort

2

Dies ist kein benutzerdefiniertes Ereignis, das ist ein DOM event with a namespace:

click das DOM-Ereignis ist, und card das Ereignis Namespace.

Wenn Sie mehrere Handler auf demselben Element haben, kann dies Ihnen helfen, sie zu erkennen. Sie könnten nur diese Hörer entfernen (und lassen Sie alle anderen click Hörer):

$(document).off('click.card'); 

Und Sie können sie auslösen manuell mit $('...').trigger:

$('.card').trigger('click.card'); // only triggers this specific click listener, not the others 

You can find out more about event namespaces here.