关于 jQuery delegate , undelegate

没啥好说的,看代码吧 !

jQuery 版本 : 1.71

浏览器版本:chrome 21

 

 1 <body>
 2 
 3     <ul class="a-list">
 4         <li><a href="javascript:;">test1</a></li>
 5         <li><a href="javascript:;">test2</a></li>
 6         <li><a href="javascript:;">test3</a></li>
 7         <li><a href="javascript:;">test4</a></li>
 8         <li><a href="javascript:;">test5</a></li>
 9     </ul>
10 
11     <ul class="button-list">
12         <li><button>test1</button></li>
13         <li><button>test2</button></li>
14         <li><button>test3</button></li>
15         <li><button>test4</button></li>
16         <li><button>test5</button></li>
17     </ul>
18 
19 </body>

 

 

1 //绑定
2 $(document).delegate('a', 'click', function()
3 {
4     alert($(this).html());
5 });

 

 

1 //不能取消
2 $(document).undelegate('a');
3 
4 //可以取消
5 $(document).undelegate('a', 'click');

 

 

1 //绑定
2 $(document).delegate('a, button', 'click', function()
3 {
4     alert($(this).html());
5 });

 

 

1 //不能取消
2 $(document).undelegate('a', 'click');
3 
4 //不能取消
5 $(document).undelegate('button', 'click');
6 
7 //可以取消
8 $(document).undelegate('a, button', 'click');

 

 

注意:

1 //不能取消 (与绑定时选择器内容不一致,顺序颠倒)
2 $(document).undelegate('button, a', 'click');
3 
4 //不能取消 (与绑定时选择器内容不一致,少了一个空格)
5 $(document).undelegate('a,button', 'click');

 

1 //绑定
2 $(document).delegate('a, button', 'click mouseover', function(e)
3 {
4     alert($(this).html());
5 });

 

 

 1 //略过部分测试,同上
 2 
 3 //不能取消
 4 $(document).undelegate('a', 'mouseover');
 5 
 6 //可以取消
 7 $(document).undelegate('a, button', 'click');
 8 
 9 //可以取消
10 $(document).undelegate('a, button', 'mouseover');
11 
12 //可以取消
13 $(document).undelegate('a, button', 'mouseover click');

 

 

1 //绑定
2 $('.a-list').delegate('a', 'click mouseover', function()
3 {
4     alert($(this).html());
5 });

 

 

 1 //略过部分测试,同上
 2     
 3 //不能取消
 4 $(document).undelegate('a', 'click');
 5 
 6 //可以取消
 7 $('.a-list').undelegate('a', 'click');
 8 
 9 //可以取消
10 $('ul').undelegate('a', 'click');
11 
12 //可以取消
13 $('ul').undelegate();
14 
15 //可以取消
16 $('.a-list').undelegate();

 

 

 

 

posted @ 2012-09-26 17:16  张坤  阅读(3299)  评论(0编辑  收藏  举报