0

从 bind() jQuery API:

从 jQuery 1.7 开始,.on() 方法是将事件处理程序附加到文档的首选方法。

并从 change() jQuery API:

此方法是 .bind('change', handler) 的快捷方式。

但是没有提到不要像在 bind() 中所说的那样使用 change() 。

从 jQuery 1.7 开始,使用 on() 而不是 bind() 有什么真正的好处吗?从 jQuery 1.7 开始,change() 和类似的快捷方式是否使用 bind() 或 on()?最终,我应该使用 change() 还是 on()?

提前致谢。

4

1 回答 1

1

快捷方法(例如.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`
},
//...

So it's probably very marginally quicker to just call on yourself. In real terms, there will be no difference in speed, so just use the one you feel most comfortable with.

于 2012-06-26T09:32:10.037 回答