2012-04-19 67 views

Trả lời

8

Nếu bạn nhìn vào mã jQuery bạn có thể thấy rằng tất cả click() làm là thực hiện 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); 
}; 

Lưu ý này:

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

Nói cách khác, "Nếu không có đối số được truyền cho click, thực hiện trigger('click') ".

+1

Có thể đáng nói đến rằng đây là thủ tục vận hành chuẩn trong mã nguồn jQuery, hoặc trong bất kỳ ứng dụng phong nha nào cho vấn đề đó - nếu bạn muốn có cùng một kết quả, hãy gọi cùng một mã. Sự khác biệt về hiệu suất giữa cái này và cái kia sẽ luôn không đáng kể. – Blazemonger

Các vấn đề liên quan