2012-04-19 159 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

相關問題