不应该使用bind(),它的快捷方式呢?

时间:2012-06-26 09:24:35

标签: jquery jquery-1.7

来自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()?

提前致谢。

1 个答案:

答案 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的速度可能非常快。实际上,速度没有区别,所以只需使用你觉得最舒服的那个。