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.
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.
Antworten:
Für das, was es wert ist, aus der jQuery-Quelle :
jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," +
"mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave," +
"change,select,submit,keydown,keypress,keyup,error").split(","), function(i, name){
// Handle event binding
jQuery.fn[name] = function(fn){
return fn ? this.bind(name, fn) : this.trigger(name);
};
});
Also nein, es gibt keinen Unterschied -
$().click(fn)
Anrufe
$().bind('click',fn)
click()ist im Grunde eine Abkürzung für bind('click')(oder in der heutigen Zeit ruft es tatsächlich an on('click'). So wie ich es sehe, können Sie sich diesen zusätzlichen Funktionsaufruf genauso gut sparen, indem Sie ihn on('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
$('#myDiv').bind('mouseover focus', function() {
$(this).addClass('focus')
});
Welches ist das viel sauberere Äquivalent zu:
var myFunc = function() {
$(this).addClass('focus');
};
$('#myDiv')
.mouseover(myFunc)
.focus(myFunc)
;
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
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.