在性能方面,它们之间的收益(或仅仅是差异)是什么:
$('.myEl').click();
和
$('.myEl').trigger('click');
有没有呢?
发布于 2012-03-12 19:55:38
我认为
$('.myEl').trigger('click');
更好,因为它为你节省了一个函数调用,因为$('.myEl').click();
只调用那个函数。查看jQuery源代码中的代码
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 ) :
//here they call trigger('click'); if you provide no arguments
this.trigger( name );
};
if ( jQuery.attrFn ) {
jQuery.attrFn[ name ] = true;
}
if ( rkeyEvent.test( name ) ) {
jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks;
}
if ( rmouseEvent.test( name ) ) {
jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks;
}
});
发布于 2012-03-12 19:54:55
有关性能,请单击此处的.check ..两者几乎都是same...click()是触发器(‘http://jsperf.com/trigger-vs-not-trigger’)的缩写。
https://stackoverflow.com/questions/9666471
复制相似问题