change javascript jquery event-handling

javascript - change - onclick jquery



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

+1 a la respuesta de Matthew, pero pensé que debería mencionar que también puedes vincular más de un controlador de eventos de una vez con bind

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

que es el equivalente mucho más limpio de:

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

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 bind

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

Otro que el parámetro de datos opcional de bind.


Creo que el .click () es mucho más lógico, pero creo que así es como piensas.

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

Parece ser tan simple como usted.


Existe el parámetro [data] de bind que ocurrirá solo en el tiempo de vinculación, una vez.

También puede especificar eventos personalizados como el primer parámetro de bind.


Hay una diferencia en que puede enlazar eventos personalizados usando el segundo formulario que tiene. De lo contrario, parecen ser sinónimos. Ver: documentos de jQuery Event


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)


Prefiero .bind () debido a su consistencia de interfaz con .live () . No solo hace que el código sea más legible, sino que hace que sea más fácil cambiar una línea de código para usar un método en lugar del otro.


Si tiene Google Chrome, sus herramientas de desarrollador tienen una herramienta de escucha de eventos, seleccione el elemento que desea espiar su ''evento''.

Descubrirá que intentar ambos caminos conduce al mismo resultado, por lo que son equivalentes.