有什么区别: -
$("#btn").click(handler);
和
$("#btn").on('click', handler);
以上两种方法都会将处理程序绑定到click
事件上的元素。什么时候用哪一个?
有什么区别: -
$("#btn").click(handler);
和
$("#btn").on('click', handler);
以上两种方法都会将处理程序绑定到click
事件上的元素。什么时候用哪一个?
因此,从 jquery 源代码中可以看出,.click
它只是一个辅助函数。在内部,它将调用映射到this.on( name, null, data, fn )
. 所以它比其他任何东西都更方便,内部所有这些函数都会调用.on
.
额外的。您也可以不带参数触发此事件,这是 if 语句中 else 的简写。这将在被调用的元素上触发 DOM 事件,例如模拟 click with $button.click()
,这又是$button.trigger('click')
.
jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
"change select submit keydown keypress keyup contextmenu" ).split( " " ),
function( i, name ) {
// Handle event binding
jQuery.fn[ name ] = function( data, fn ) {
return arguments.length > 0 ?
this.on( name, null, data, fn ) :
this.trigger( name );
};
});
.click() 方法只是 .on( "click", handler ) 的简写。有关更多详细信息,您可以查看此链接https://api.jquery.com/click/