为了账号安全,请及时绑定邮箱和手机立即绑定

jQuery中的bind()函数跟on()函数有什么区别呢?

/ 猿问

jQuery中的bind()函数跟on()函数有什么区别呢?

烙印99 2019-02-13 15:11:54

jQuery中的bind()函数跟on()函数有什么区别呢?


查看完整描述

3 回答

?
慕的地2183247

.bind()与.on()的区别:

(1)是否支持selector这个参数值。由于javascript的事件冒泡特性,如果在父元素上注册了一个事件处理函数,当子元素上发生这个事件的时候,父元素上的事件处理函数也会被触发。

如果使用on的时候,不设置selector,那么on与bind就没有区别了。

(2)on绑定的事件处理函数,对于未来新增的元素一样可以的,和delegate效果相同,而bind则不行。   

(3) delegate用法与on()相同,只是参数的顺序不同:

扩展资料:

.bind()与.on()的实际应用:

1.bind()是直接绑定在元素上 ,将一本地地址与一套接口捆绑。如无错误发生,则bind()返回0。否则的话,将返回-1,应用程序可通过WSAGetLastError()获取相应错误代码。

用于事件处理程序

function ClassName(){this.eventHandler = (function(){

}).bind(this);

}

2.on()则实现事件代理, 可以在匹配元素上绑定一个或者多个事件处理函数。

(1) 用来绑定多事件,并且为同一函数,如:

$('div').on('click mouseover',function(){

//do sth

});

(2)多个事件绑定不同函数,如:

$('div').on({

'click':function(){

//do sth

},

'mouseover':function(){

//do sth

}

});

(3)事件代理,如:

html:

<button id="bt1">按钮1</button>

jq:

$('#bt1').on('click',function(){

$('body').append('<button>按钮2</button>');

});

$('body').on('click','.bt2',function(){

console.log('这是bt2');

}



查看完整回答
反对 回复 2019-03-26
?
慕勒3428872

.bind()是直接绑定在元素上
.live()则是通过冒泡的方式来绑定到元素上的。更适合列表类型的,绑定到document DOM节点上。和.bind()的优势是支持动态数据。
.delegate()则是更精确的小范围使用事件代理,性能优于.live()
.on()则是最新的1.9版本整合了之前的三种方式的新事件绑定机制

查看完整回答
反对 回复 2019-03-26
?
潇湘沐

1:bind():为每个匹配元素的特定事件绑定事件处理函数。
  bind(type,[data],fn)
  type: 含有一个或多个事件类型的字符串,由空格分隔多个事件。
  比如"click"或"submit",还可以是自定义事件名。
  data:作为event.data属性值传递给事件对象的额外数据对象
  fn:绑定到每个匹配元素的事件上面的处理函数

  2:on()在选择元素上绑定一个或多个事件的事件处理函数。
  on(events,[selector],[data],fn)
  events:一个或多个用空格分隔的事件类型和可选的命名空间, 如"click"或"keydown.myPlugin" 。
  selector:一个选择器字符串用于过滤器的触发事件的选择器元素的后代。如果选择的< null或省略,当它到达选定的元素,事件总是触发。
  data:当一个事件被触发时要传递event.data给事件处理函数。
  fn:该事件被触发时执行的函数。 false 值也可以做一个函数的简写,返回false。

对比发现on 和bind的 差别不大, 但是on多一个[selector] 可以过滤指定元素



查看完整回答
反对 回复 2019-03-26

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信