jQuery上的trigger('click')和click()之间有什么区别?

时间:2012-04-19 14:12:44

标签: jquery performance

我正在寻找这两者之间的性能差异,我在SSE中找不到关于这个主题的好答案。

一些例子会有很大的帮助。

1 个答案:

答案 0 :(得分:8)

如果查看jQuery代码,您可以看到所有click()都执行trigger('click')

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.on( name, null, data, fn ) :
        this.trigger( name );
};

请注意:

    return arguments.length > 0 ?
        this.on( name, null, data, fn ) :
        this.trigger( name );

换句话说,“如果没有参数传递给click,请执行trigger('click')”。