来自bind()jQuery API:
从jQuery 1.7开始,.on()方法是首选方法 将事件处理程序附加到文档。
来自change()jQuery API:
此方法是.bind('change',handler)的快捷方式。
但是没有提到不能像在bind()中那样使用change()。
从jQuery 1.7开始使用on()而不是bind()有什么好处吗?从jQuery 1.7开始,使用bind()或on()的change()和类似的快捷方式是什么?最终,我应该使用change()还是on()?
提前致谢。
答案 0 :(得分:1)
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
的速度可能非常快。实际上,速度没有区别,所以只需使用你觉得最舒服的那个。