在jQuery中使用BIND或ON函数的最佳实践

Lio*_*rom 4 javascript jquery events binding jquery-mobile

最近,jQuery团队开始建议使用on而不是bind将事件绑定到DOM.

我想知道是否有他们之间的差异,什么是使用的好处on功能,如果它会改变我所有的良好的通话bind的到on的功能在我的代码?

Guf*_*ffa 11

jQuery项目正在朝着更少的方法投入越来越多的功能,而不是为每个单独的东西分别使用单独的方法.

的方法bind,livedelegate已经全部换成了一个方法on,在您使用不同类型的参数来确定方法做什么.

比较:

$(sel).bind(event, f);            =    $(sel).on(event, f);
$(sel).live(event, f);            =    $(document.body).on(event, sel, f);
$(sel).delegate(sel2, event, f)   =    $(sel).on(event, sel2, f);
Run Code Online (Sandbox Code Playgroud)

如果你正在使用live,你应该替换它,因为该方法的使用有点尴尬.此外,该live方法在body元素上创建委托,您应该尝试将委托绑定到更近的范围.

如果您正在使用bind,delegate立即更换它们并不会引起恐慌on.您可以在新代码和您编辑的代码中执行此操作,但这些方法不会在最近的将来消失.