jQuery 1.7版本将“统一绑定(bind)/直接绑定(live)/委托绑定(delegate)”功能。这在jQuery源代码中意味着什么?对我的jQuery代码有什么影响?
jQuery 1.7版本将“统一绑定(bind)/直接绑定(live)/委托绑定(delegate)”功能。这在jQuery源代码中意味着什么?对我的jQuery代码有什么影响?
简要概述:
目前我们有三种不同的事件API对:bind/unbind、live/die和delegate/undelegate。由于它们都在幕后使用相同的事件列表和事件,分别公开API可能会导致错误的期望。引入jQuery.fn.on。Bind/Delegate/Live将保留为速记方法。
$(selector).on(events, fn)
的语法与$(selector).bind(events, fn)
相同,但会像.live()
一样适用于现有对象或将来的对象(有点类似于.bind()
和.live()
的结合)。这样理解对吗? - jfriend00$(selector).on(events, fn)
的语法与$(selector).bind(events, fn)
相同,但仅适用于当前对象。要在进一步的对象上工作,请使用$(document).on(events, selector, fn)
- 请注意它是文档范围内的!如果您对纯JS有一点了解:.on()将事件处理程序附加到$(elems)上。 "选择器"过滤这些元素。.live()是一个文档范围内的事件侦听器(记住事件冒泡),检查对象是否匹配给定的选择器,并在如此的情况下执行相应的回调。 - Maximilian Hils$(selector).click(fn)
或$(selector).live("click", fn)
的快捷方式吗? - jfriend00