W przypadku korzystania z jQuery do podłączenia modułu obsługi zdarzeń istnieje różnica między używaniem metody click
$().click(fn)
w porównaniu z metodą bind
$().bind('click',fn);
Inny niż opcjonalny parametr danych wiązania.
W przypadku korzystania z jQuery do podłączenia modułu obsługi zdarzeń istnieje różnica między używaniem metody click
$().click(fn)
w porównaniu z metodą bind
$().bind('click',fn);
Inny niż opcjonalny parametr danych wiązania.
Odpowiedzi:
Za co warto, ze źródła 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);
};
});
Więc nie, nie ma różnicy -
$().click(fn)
wezwania
$().bind('click',fn)
click()
jest w zasadzie skrótem od bind('click')
(lub, w dzisiejszych czasach, faktycznie nazywa się to wiekiem on('click')
. Tak, jak ja to widzę, równie dobrze możesz zaoszczędzić sobie tego dodatkowego wywołania funkcji, używając on('click')
bezpośrednio.)
+1 za odpowiedź Matthew, ale pomyślałem, że powinienem wspomnieć, że możesz również powiązać więcej niż jedną procedurę obsługi zdarzeń za jednym razem, używając bind
$('#myDiv').bind('mouseover focus', function() {
$(this).addClass('focus')
});
co jest znacznie czystszym odpowiednikiem:
var myFunc = function() {
$(this).addClass('focus');
};
$('#myDiv')
.mouseover(myFunc)
.focus(myFunc)
;
Jest jedna różnica polegająca na tym, że zdarzenia niestandardowe można wiązać przy użyciu drugiego posiadanego formularza. W przeciwnym razie wydają się być synonimami. Zobacz: jQuery Event Docs