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});
示例代码如:
View Code
JK Test
其二:多个祖先满足条件时,只触发了targent的closest的那一个祖先,而不是都触发�----想不通jquery为什么要采用这个策略
示例代码如:
View Code
JK Test
其三:与sizzle一样,可能是没有回溯,在某些情况下有bug�
例如,当span有多个祖先是div时,这个代理会失效:$('body').delegate('body>div span','click',fun;});
示例代码如:
View Code
JK Test
延伸阅读
- 2011-8-16-- jquery,JQuery最佳实�
- 2011-8-16-- jquery,JQuery设计思想
- 2010-12-9-- jquery,超越Jquery_01_isPlainObject分析与重�
- 2010-11-24-- jquery,jQuery语法总结及注意事�
- 2010-12-15-- jquery,我所理解的jQuery�1�--jQuery前传JavaScript101
- 2010-12-9-- jquery,Asp.net下用JQuery找出哪一个元素引起PostBack
- 2010-12-15-- jquery,jQuery 1.3 发布
- 2010-12-9-- jquery,jquery提升性能最佳实践小�
- 2010-11-24-- jquery,基于jQuery打造智能的人员选择输入�
- 2010-12-9-- jquery,jQuery示例收集
最新评�