Javascript 使用jQuery动态加载html

Javascript 使用jQuery动态加载html,javascript,ajax,html,jquery,Javascript,Ajax,Html,Jquery,我正在构建的这个网站遇到了一点问题,我正在使用jQuery的.load()获取一个html文件,并将其包含在我网站的#内容中 正在拉入的代码块在一些缩略图上具有jQuery单击功能 <div id="bigImg"><img src="images/1large.jpg" alt="Large View" id="lrg" /></div> <div id="thumbCont"> <div class="thumb first">&

我正在构建的这个网站遇到了一点问题,我正在使用jQuery的.load()获取一个html文件,并将其包含在我网站的#内容中

正在拉入的代码块在一些缩略图上具有jQuery单击功能

<div id="bigImg"><img src="images/1large.jpg" alt="Large View" id="lrg" /></div>
<div id="thumbCont">
<div class="thumb first"><img src="images/thumb1.jpg" alt="Thumbnail 1" data-lrg="images/1large.jpg" class="th"></div>
<div class="thumb"><img src="images/thumb2.jpg" alt="Thumbnail 2" data-lrg="images/2large.jpg" class="th"></div>
<div class="thumb"><img src="images/thumb3.jpg" alt="Thumbnail 3" data-lrg="images/3large.jpg" class="th"></div>
<div class="thumb"><img src="images/thumb4.jpg" alt="Thumbnail 5" data-lrg="images/4large.jpg" class="th"></div>
<div class="thumb last"><img src="images/thumb5.jpg" alt="Thumbnail 5" data-lrg="images/5large.jpg" class="th"></div>
</div>
因此,当用户单击图像时,jquery从数据lrg中提取新的图像src。这个函数非常有用,直到我决定用jquery而不是php来提取html

知道jQuery为什么不能识别新的html吗

我的想法: 我猜这与jQuery在加载页面的这一部分之前设置shop有关,这告诉我需要找到一种方法,让jQuery再次查看这一部分,或者再次查看整个页面。。。。但我不知道该怎么做

(我知道onclick不是最好的方法,但它使早期开发变得容易)

试试:

$('img.th').live('click', function(){...});

这样,单击操作将附加到任何当前和将来的img.th选择器。

加载html后,需要附加事件处理程序


或者,您可以使用.live()

$。委托
倾向于首选
$。live
。您可以从父元素委派事件侦听器,这将考虑所有当前和将来的子元素:

$('#thumbCont').delegate('img.th', 'click', function(e) {
  // ...
});
编辑

关于
代表
现场
之间区别的更多细节:


他们的行为方式相似,但
委托
往往比
现场
表现更好;如果说
live
不受欢迎是有点过分的,因为有太多的代码依赖于它,但是
delegate
是在1.4中引入的,以解决
live
的一些缺陷(在1.3中引入)。基本上,
live
将事件侦听器附加到
文档
,而
委托
将其附加到传递给jQuery方法的选择器。发生意外冲突的机会更少,性能更好,因为它只需遍历一小部分元素,而且链接存在一些副问题,
live
难以解决()。

已经用简单的html页面进行了测试,并且运行良好。我没有意识到这一点。你每天都会学到新东西。
$('#thumbCont').delegate('img.th', 'click', function(e) {
  // ...
});