的shortcut methods(例如.change()
)只需撥打bind
內部:
jQuery.each(("blur focus focusin focusout load resize scroll unload click dblclick " +
"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
"change select submit keydown keypress keyup error contextmenu").split(" "), function(i, name) {
// Handle event binding
jQuery.fn[ name ] = function(data, fn) {
if (fn == null) {
fn = data;
data = null;
}
return arguments.length > 0 ?
this.bind(name, data, fn) : //Just call `bind`
this.trigger(name);
};
//...
而且bind
簡單地調用on
:
//...
bind: function(types, data, fn) {
return this.on(types, null, data, fn); //Just call `on`
},
//...
因此它可能是很輕微更快地只是調用on
自己。實際上,速度沒有區別,所以只需使用你最喜歡的那個。
'bind()'是**不**過時。已棄用*與「首選」不同*。 ['live()'](http://api.jquery.com/live)是當前不推薦使用的*** only ***事件方法。 ['change()'是'on('change')']的別名(https://github.com/jquery/jquery/blob/754bda21cbc5c9044daf7f968fb9b4ffae39e334/src/event.js#L1040-1067),所以使用'如果需要,可以改變()'(或'bind()',因爲它不被棄用)。 – Matt
可能的重複(以噸的問題):http://stackoverflow.com/questions/8065305/whats-the-difference-between-on-and-live-or-bind。 – VisioN
謝謝VisioN。就是這樣。 – bluehallu