jquery,Jquery之美中不足--之三----delegate的缺憾

jquery的delegate有好几个缺憾。----或许是因为sizzle少提供了以refEl为参考、一个按selector来筛选els的filter(els,selector,refEl)的功能,jq需要自己去实现类似的功能。 其一:selector是基于:root的,而不是:scope的。所以,在写代码时,需要带上scrope的定位部分。 例如,代理div1的儿子,需要这样写: $('#div1').delegate('#div1>*','click',fun}); 而不是这样写: $('#div1').delegate('>*','click',fun}); 示例代码如: jquery,Jquery之美中不足--之三----delegate的缺憾jquery,Jquery之美中不足--之三----delegate的缺憾View Code JK Test
div1
div1_1
div1_1_1 span
div1_2


其二:多个祖先满足条件时,只触发了targent的closest的那一个祖先,而不是都触发�----想不通jquery为什么要采用这个策略 示例代码如: View Code JK Test
div1
div1_1
div1_1_1 span
div1_2


其三:与sizzle一样,可能是没有回溯,在某些情况下有bug� 例如,当span有多个祖先是div时,这个代理会失效:$('body').delegate('body>div span','click',fun;}); 示例代码如: View Code JK Test
div1
div1_1
div1_1_1 span
div1_2


Tags:  jquery

延伸阅读

最新评�

发表评论