Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4174316
  • 博文数量: 601
  • 博客积分: 15410
  • 博客等级: 上将
  • 技术积分: 6884
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-16 08:11
个人简介

独学而无友,则孤陋而寡闻!

文章分类

全部博文(601)

文章存档

2020年(1)

2018年(4)

2017年(7)

2016年(42)

2015年(25)

2014年(15)

2013年(36)

2012年(46)

2011年(117)

2010年(148)

2009年(82)

2008年(37)

2007年(41)

分类: jQuery

2016-06-10 09:59:23

delegate虽然可以绑定在动态生成的组件,但是必须有个条件:父组件不能动态生成,必须是已经存在的组件。

下例中,float_menu是动态生成,其中的addrs是一个按钮,为了给这个按钮添加一个click(),应该使用delegate。但是delegate的父元素是哪一个呢?

看结构,写成$(".float_menu").delegate(".addrs","click",function(){})比较简单。但这样不会有效果,因为float_menu也是动态生成的,在生成之前,没有float_menu,所以也无法绑定。

这种情况必须向上再找,本例中可以使用.timeline-heading,它是一直存在的。
$(".timeline-heading").delegate(".addrs","click",function(){}),如果想快速一点,可以再具体一些:
$(".timeline-heading").delegate(".float_menu .addrs","click",function(){})

  1. <div class="timeline-heading">
  2.                                      <h4 class="panel-title">
  3.                                          <a class="accordion-toggle" data-toggle="collapse" href="#ap2">请完成第三节的内容<span class="pull-right"><sub><i class="fa fa-clock-o fa-fw"></i>2015.08.21 09:20</sub></span></a>
  4.                                      </h4>



  5. </div>

再总结一下:delegate使用消息冒泡的特征,先在父元素上绑定“消息列表”,这个消息列表在“守株待兔”,在等待冒泡来的消息。父元素接收到消息后,就按照delegate指定的选择器来选择子元素,然后再调用其指定的消息函数。


阅读(3119) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~