当我使用 ajax 获取内容时,我遇到了一个小问题。问题是一旦成功事件触发,我将加载的内容放到一个 div 上并调用一个函数
$('.content').html(data);
$('.image').resize(function(e) { more code.... });
好吧,问题是当第二行执行时内容还没有准备好,所以它没有效果。
在这种情况下我能做什么?
谢谢。
将第二行放在回调函数中并使用 .load 完成第一部分:
$('.content').load(<ajax url here>, function () {
$('.image').resize(function (e) {
// do whatever else you need to do here
});
});
如果问题是您将事件附加到尚未在 DOM 中的事物(由于 AJAX 负载),您可以使用委托事件处理程序。
这假设所有.image
元素都在元素内.content
。你可以做:
$('.content').on('resize', '.image', function(e) { ... });
请参阅jQuery .on()事件注册语法。这将在元素中的所有元素上侦听resize
事件,即使它们是动态添加的(即通过 AJAX)。.image
.content