【问题标题】:What's the difference between trigger('click') and click() on jQueryjQuery 上的 trigger('click') 和 click() 有什么区别
【发布时间】:2012-04-19 14:12:43
【问题描述】:

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

一些例子会有很大帮助。

【问题讨论】:

  • 没有。一个打电话给另一个。

标签: jquery performance


【解决方案1】:

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

【讨论】:

  • 可能值得一提的是,这是 jQuery 源代码或任何体面的应用程序中的标准操作过程——如果您想要相同的结果,请调用相同的代码。两者之间的性能差异总是可以忽略不计。
最近更新 更多