当前位置:  开发笔记 > 编程语言 > 正文

jQuery:$().click(fn)vs. $().bind('click',fn);

如何解决《jQuery:$().click(fn)vs.$().bind('click',fn);》经验,为你挑选了3个好方法。

当使用jQuery连接事件处理程序时,使用click方法之间是否有任何区别

$().click(fn)

与使用绑定方法

$().bind('click',fn);

除了bind的可选数据参数.



1> Matthew Mara..:

从jQuery源代码来看它的价值:

jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," +
    "mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave," +
    "change,select,submit,keydown,keypress,keyup,error").split(","), function(i, name){

    // Handle event binding
    jQuery.fn[name] = function(fn){
        return fn ? this.bind(name, fn) : this.trigger(name);
    };
});

所以不,没有区别 -

$().click(fn)

电话

$().bind('click',fn)


是的 - "click()"基本上是`bind('click')`的缩写(或者,在这个时代,它实际上称为'on('click')`.我看到它的方式,你也可能通过直接使用`on('click')`来节省额外的函数调用.

2> nickf..:

为Matthew的回答+1,但我想我应该提一下,你也可以一次性绑定多个事件处理程序 bind

$('#myDiv').bind('mouseover focus', function() {
    $(this).addClass('focus')
});

这是更清洁相当于:

var myFunc = function() {
    $(this).addClass('focus');
};
$('#myDiv')
    .mouseover(myFunc)
    .focus(myFunc)
;


+1绑定多个事件对我来说是新闻,可能非常有用.

3> nickohrn..:

有一个区别在于您可以使用您拥有的第二个表单绑定自定义事件.否则,它们似乎是同义词.请参阅:jQuery Event Docs

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有