bind和on的区别

bind方法与on方法都是事件绑定,可是二者却又有着一个大区别:事件委托jquery

jquery文档中bind和on函数绑定事件的用法:app

.bind(events [,eventData], handler)函数

.on(events [,selector]  [,data], handler)性能

从文档中能够看出,.on方法比.bind方法多一个参数'selector'子类选择器;spa

事件委托就是子类的事情委托给父类的去作,而这就让咱们想起了冒泡事件,是的,这的确是委托事件的原型,而咱们的selector,则是判断是否是那个子元素触发的事件,若是不是,天然就忽略掉了;事件

好处资源

1.万一子元素很是多,给每一个子元素都添加一个事件,会影响到性能;文档

2.为动态添加的元素也能绑上指定事件;原型

1好比一个有着1000条新闻的新闻列表,当咱们绑定1000次的时候,会耗费不少资源,而一次事件委托就足够了;io

2.如:$('ul li').on('click', function(){console.log('click');})的绑定方式和$('ul li').bind('click', function(){console.log('click');})同样;我经过js给ul添加了一个li:$('ul').append('<li>js new li<li>');');这个新加的li是不会被绑上click事件的

可是我用$('ul').on('click', 'li', function(){console.log('click');}方式绑定,而后动态添加li:$('ul').append('<li>js new li<li>');这个新生成的li被绑上了click事件

相关文章
相关标签/搜索