有什么不同: -
$("#btn").click(handler);
和
$("#btn").on('click', handler);
以上两者都会将处理程序绑定到click
事件上的元素。何时使用哪一个?
答案 0 :(得分:1)
从jquery源代码.click
可以看出,它只是一个辅助函数。在内部,它将呼叫映射到this.on( name, null, data, fn )
。因此,它比其他任何东西都更方便,所有这些函数都会调用.on
。
附加。你也可以在没有params的情况下触发这个事件,这是if语句中的简写。这将触发正在调用的元素上的DOM事件,例如使用$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 );
};
});
答案 1 :(得分:1)
.click()方法只是.on(“click”,handler)的简写。有关详细信息,您可以看到此链接https://api.jquery.com/click/