首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >点击:$().click(fn) vs. $().bind(‘jQuery’,fn);

点击:$().click(fn) vs. $().bind(‘jQuery’,fn);
EN

Stack Overflow用户
提问于 2009-02-06 01:24:15
回答 7查看 47.7K关注 0票数 116

使用jQuery连接事件处理程序时,使用click方法与

代码语言:javascript
复制
$().click(fn)

而不是使用bind方法

代码语言:javascript
复制
$().bind('click',fn);

而不是绑定的可选数据参数。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-02-06 01:30:37

不管它有什么价值,从jQuery source

代码语言:javascript
复制
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);
    };
});

所以不,没有区别-

代码语言:javascript
复制
$().click(fn)

呼叫

代码语言:javascript
复制
$().bind('click',fn)
票数 137
EN

Stack Overflow用户

发布于 2009-02-06 07:35:33

马修的答案是+1,但我想我应该提一下,您还可以使用bind一次性绑定多个事件处理程序

代码语言:javascript
复制
$('#myDiv').bind('mouseover focus', function() {
    $(this).addClass('focus')
});

更清晰的等价物是:

代码语言:javascript
复制
var myFunc = function() {
    $(this).addClass('focus');
};
$('#myDiv')
    .mouseover(myFunc)
    .focus(myFunc)
;
票数 98
EN

Stack Overflow用户

发布于 2009-02-06 01:29:07

有一个不同之处,那就是您可以使用第二种形式绑定自定义事件。否则,它们似乎是同义词。请参阅:jQuery Event Docs

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/518762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档