live && delegate

        最近开发的一个控件,利用live方法在某个"label"上绑定了一个事件。结果发现所有的label都有这个事件了,顺便研究了下live和delegate方法区别。

        PS:使用jQuery版本是1.6.2

        截取部分live方法实现代码如下:

jQuery.each(["live", "die"], function( i, name ) {
jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) {
var type, i = 0, match, namespaces, preType,
selector = origSelector || this.selector,
context = origSelector ? this : jQuery( this.context );
...
省略
...
}
})

        delegate方法代码如下:

delegate: function( selector, types, data, fn ) {
return this.live( types, data, fn, selector );
}

        "delegate"方法并没有重新实现live方法,而是传递“丰富”的参数调用live方法。

 



posted @ 2012-03-08 00:05  screepinail  阅读(907)  评论(0编辑  收藏  举报