Wenn Sie jQuery zum Anschließen eines Ereignishandlers verwenden, gibt es einen Unterschied zwischen der Verwendung der Klickmethode
$().click(fn)
versus mit der Bindemethode
$().bind('click',fn);
Außer dem optionalen Datenparameter von bind.
javascript
jquery
event-handling
Alan Storm
quelle
quelle
Antworten:
Für das, was es wert ist, aus der jQuery-Quelle :
Also nein, es gibt keinen Unterschied -
Anrufe
quelle
click()
ist im Grunde eine Abkürzung fürbind('click')
(oder in der heutigen Zeit ruft es tatsächlich anon('click')
. So wie ich es sehe, können Sie sich diesen zusätzlichen Funktionsaufruf genauso gut sparen, indem Sie ihnon('click')
direkt verwenden.+1 für Matthews Antwort, aber ich dachte, ich sollte erwähnen, dass Sie auch mehr als einen Event-Handler auf einmal mit binden können
bind
Welches ist das viel sauberere Äquivalent zu:
quelle
Es gibt einen Unterschied darin, dass Sie benutzerdefinierte Ereignisse mit dem zweiten Formular binden können, das Sie haben. Ansonsten scheinen sie synonym zu sein. Siehe: jQuery-Ereignisdokumente
quelle
Es gibt den Parameter [data] von bind, der nur einmal zur Bindungszeit auftritt.
Sie können auch benutzerdefinierte Ereignisse als ersten Parameter für die Bindung angeben.
quelle
Ich finde, dass .click () viel logischer ist, aber ich denke, so denkst du über Dinge.
Scheint so einfach wie möglich zu sein.
quelle
Wenn Sie über Google Chrome verfügen, verfügen die Entwicklertools über ein Ereignis-Listener-Tool. Wählen Sie das Element aus, dessen Ereignis Sie ausspionieren möchten.
Sie werden feststellen, dass das Ausprobieren beider Methoden zum gleichen Ergebnis führt, sodass sie gleichwertig sind.
quelle
Ich bevorzuge .bind () wegen seiner Schnittstellenkonsistenz mit .live () . Dies macht den Code nicht nur besser lesbar, sondern erleichtert auch das Ändern einer Codezeile, um eine Methode anstelle der anderen zu verwenden.
quelle