“.click(...”和“.bind”(“点击...”(用简单的英语))之间有什么区别?

时间:2011-10-22 06:15:47

标签: jquery events

我想知道它之间的区别:

$('#foo').click(function() {
  alert('User clicked on "foo."');
});

和这个

$('#foo').bind('click', function() {
  alert('User clicked on "foo."');
});

(我阅读了文档,但我还没有得到它。)

3 个答案:

答案 0 :(得分:4)

$().click(fn)$().bind('click', fn)乍一看是相同的,但$.bind版本更强大,原因有二:

  • $().bind()允许您为多个事件分配一个处理程序,例如$().bind('click keyup', fn)
  • $().bind()支持namespaced events - 如果您只想删除元素绑定的某些事件处理程序$().unbind),这是一项功能强大的功能。

答案 1 :(得分:1)

没有区别,但您可以使用bind

一次绑定多个事件处理程序

$('#foo').click(function(){})触发后会调用

$('#foo').bind('click', function() {})

所以

$('#foo').click(function() {
  alert('User clicked on "foo."');
});

和这个

$('#foo').bind('click', function() {
  alert('User clicked on "foo."');
});

意思相同。

bind的另一个用途是:

$('#foo').bind('click mouseover focus', function() {
  alert('User clicked on "foo."');
});

希望这有帮助。

答案 2 :(得分:0)

bind()方法为所选元素附加一个或多个事件处理程序,并指定在事件发生时运行的函数。 click()函数不绑定多个事件处理程序。 click()方法触发click事件,或者附加一个函数以在发生click事件时运行。

$( "#button1" ).bind({
click: function() {
Do something on click
},
mouseenter: function() {
// Do something on mouseenter
}
});

$('#button1').click(function() {
alert('User clicked on button');
});