0

当我使用 ajax 获取内容时,我遇到了一个小问题。问题是一旦成功事件触发,我将加载的内容放到一个 div 上并调用一个函数

$('.content').html(data);
$('.image').resize(function(e) { more code.... });

好吧,问题是当第二行执行时内容还没有准备好,所以它没有效果。

在这种情况下我能做什么?

谢谢。

4

2 回答 2

2

将第二行放在回调函数中并使用 .load 完成第一部分:

$('.content').load(<ajax url here>, function () {
  $('.image').resize(function (e) {
    // do whatever else you need to do here
  });
});
于 2012-06-03T01:37:23.397 回答
1

如果问题是您将事件附加到尚未在 DOM 中的事物(由于 AJAX 负载),您可以使用委托事件处理程序。

这假设所有.image元素都在元素内.content。你可以做:

$('.content').on('resize', '.image', function(e) { ... });

请参阅jQuery .on()事件注册语法。这将在元素中的所有元素上侦听resize事件,即使它们是动态添加的(即通过 AJAX)。.image.content

于 2012-06-03T01:46:46.307 回答