116 Stimmen

jQuery: $().click(fn) vs. $().bind('click',fn);

Wenn Sie jQuery verwenden, um einen Event-Handler zu verbinden, gibt es einen Unterschied zwischen der Verwendung der Click-Methode

$().click(fn)

gegenüber der Bindungsmethode

$().bind('click',fn);

Anders als der optionale Datenparameter von bind.

137voto

Matthew Maravillas Punkte 3192

Für was es wert ist, von 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)

ruft auf.

$().bind('click',fn)

98voto

nickf Punkte 517253

+1 für Matthew's Antwort, aber ich dachte, ich sollte erwähnen, dass Sie auch mehr als einen Ereignishandler in einem gehen mit binden können bind

$('#myDiv').bind('mouseover focus', function() {
    $(this).addClass('focus')
});

was das viel sauberere Äquivalent zu ist:

var myFunc = function() {
    $(this).addClass('focus');
};
$('#myDiv')
    .mouseover(myFunc)
    .focus(myFunc)
;

7voto

nickohrn Punkte 2230

Ein Unterschied besteht darin, dass Sie mit dem zweiten Formular benutzerdefinierte Ereignisse binden können. Ansonsten scheinen sie synonym zu sein. Siehe: jQuery Ereignis-Dokumente

1voto

aaron Punkte 11

Es gibt den [data]-Parameter von bind, der nur einmal zur Bindungszeit auftritt.

Sie können auch benutzerdefinierte Ereignisse als ersten Parameter von bind angeben.

1voto

JedH Punkte 126

Ich finde die .click() ist viel logischer, aber ich denke, es ist, wie Sie die Dinge denken.

$('#my_button').click(function() { alert('BOOM!'); });

Das scheint so einfach zu sein, wie es nur geht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X