bind、live、delegate、one、on区别

2019-03-29  本文已影响0人  琴先森的博客
$('#foo').bind('mouseenter mouseleave',fn)
$('button').bind({
  click:fn1,
  mouseover:fn2,
  mouseout:fn3,
})
$('input').unbind();  // 删除全部事件
$('input').unbind('click');  // 删除所有的click事件
$('input').unbind('click',fn2);  // 删除fn2事件
$('.button').live('click',fn)    
// fn事件其实是绑定在document上,从点击的button冒泡到document上
$('#list').delegate('li', 'click', 
function() {
 //function code here.
});
//live()是通过document元素委派,而delegate()则可以是任意的祖先节点
// 委托
$('父元素').on('click',子元素,fn) 
$('父元素').off('click',子元素)
// 绑定
$('元素p').on('click',fn)
$('元素p').one('click',fn)  // 只绑定一次
$('元素p').off('click','元素p',fn)

总结 :jquery推出on()的目的有2个,一是为了统一接口,二是为了提高性能,所以从现在开始用on()替换bind(),live(),delegate()吧。

上一篇 下一篇

猜你喜欢

热点阅读