Al usar jQuery para conectar un controlador de eventos, ¿hay alguna diferencia entre usar el método de clic?
$().click(fn)
versus usar el método de vinculación
$().bind('click',fn);
Aparte del parámetro de datos opcional de bind.
Al usar jQuery para conectar un controlador de eventos, ¿hay alguna diferencia entre usar el método de clic?
$().click(fn)
versus usar el método de vinculación
$().bind('click',fn);
Aparte del parámetro de datos opcional de bind.
Respuestas:
Por lo que vale, de la fuente jQuery :
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);
};
});
Entonces no, no hay diferencia -
$().click(fn)
llamadas
$().bind('click',fn)
click()
es básicamente una abreviatura de bind('click')
(o, en este día, una época, en realidad llama on('click')
. A mi modo de ver, también podría ahorrarse esa llamada de función adicional usando on('click')
directamente.
+1 para la respuesta de Matthew, pero pensé que debería mencionar que también puede vincular más de un controlador de eventos de una vez usando bind
$('#myDiv').bind('mouseover focus', function() {
$(this).addClass('focus')
});
que es el equivalente mucho más limpio a:
var myFunc = function() {
$(this).addClass('focus');
};
$('#myDiv')
.mouseover(myFunc)
.focus(myFunc)
;
Hay una diferencia en que puede vincular eventos personalizados utilizando el segundo formulario que tiene. De lo contrario, parecen ser sinónimos. Ver: jQuery Event Docs