jQuery中trigger('click')和click()有什么区别?

7
我正在寻找这两者之间性能差异的信息,但在SSE中并没有找到关于这个主题的好答案。一些例子将会非常有帮助。

没有。一个调用另一个。 - Blazemonger
1个回答

9
如果您查看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')”。

1
值得一提的是,这在jQuery源代码中是标准操作流程,或者说在任何体面的应用程序中都是如此——如果你想要相同的结果,就调用相同的代码。一个和另一个之间的性能差异总是可以忽略不计的。 - Blazemonger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接