0

有什么区别: -

$("#btn").click(handler);

$("#btn").on('click', handler);

以上两种方法都会将处理程序绑定到click事件上的元素。什么时候用哪一个?

4

2 回答 2

1

因此,从 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 );
    };
});
于 2017-02-16T10:31:17.767 回答
1

.click() 方法只是 .on( "click", handler ) 的简写。有关更多详细信息,您可以查看此链接https://api.jquery.com/click/

于 2017-02-16T10:32:54.067 回答