JQuery: $() . click (fn) vs. $() . bind (‘ click’,fn) ;

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

$().click(fn)

而不是使用 bind 方法

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

Other than bind's optional data parameter.

47926 次浏览

有一个不同之处在于,您可以使用所具有的第二个窗体绑定自定义事件。否则,它们看起来就是同义词。见: JQuery 事件文档

无论如何,来自 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);
};
});

So no, there's no difference -

$().click(fn)

电话

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

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

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

这就相当于:

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

Bind 的[ data ]参数只在绑定时出现一次。

还可以将自定义事件指定为 bind 的第一个参数。

如果你有谷歌浏览器,他们的开发工具有一个事件监听工具,选择你想监视它的事件的元素。

你会发现尝试两种方法会得到相同的结果,所以它们是等价的。

I prefer . bind () because of its interface consistency with 。生活(). Not only does it make the code more readable, but it makes it easier to change a line of code to use one method instead of the other.

我发现. click ()更符合逻辑,但我想这是你思考问题的方式。

$('#my_button').click(function() { alert('BOOM!'); });

看起来就是这么简单。