当使用 jQuery 连接事件处理程序时,使用 click 方法与使用
$().click(fn)
而不是使用 bind 方法
$().bind('click',fn);
Other than bind's optional data parameter.
有一个不同之处在于,您可以使用所具有的第二个窗体绑定自定义事件。否则,它们看起来就是同义词。见: 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 -
电话
$().bind('click',fn)
Matthew 的回答是 + 1,但是我想我应该提到,你也可以使用 bind一次绑定多个事件处理程序
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!'); });
看起来就是这么简单。