2012-04-19 139 views

回答

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')“。

+1

可能值得一提的是,这是jQuery源代码中的标准操作过程,或者是任何正常的应用程序 - 如果您想要相同的结果,请调用相同的代码。一方和另一方之间的表现差异总是微不足道的。 – Blazemonger 2012-04-19 14:18:08

相关问题