如何检测被load()加载的元素是否已经完成加载?

How do I detect if elements being loaded by load() have finished loading?

本文关键字:加载 是否 元素 何检测 检测 load      更新时间:2023-09-26

我正试图从我的网站下的另一个页面加载一些元素,我做到了。但我也试图应用一些jquery操作的元素被加载。但是,我为它们编写的脚本将被跳过,因为它们在元素加载之前运行。是否知道如何检测元素加载是否完成?(也许这是一个愚蠢的问题,但我真的找不到答案)。

这是我加载元素的方式:

$('#homeCat2').load('category.php?id_category=2 #product_list');

我试过这样做,但是没有用:

$('#homeCat2').load('category.php?id_category=2 #product_list',whenCompleteLoad());
function whenCompleteLoad(){
    var itemNum = $('.ajax_block_product').length;
    alert(itemNum);
};

我还尝试将这些元素的代码放入$(document).ready();但是,没有运气....

有什么建议吗?

您正在将whenCompleteLoad()输出传递给.load()函数的回调槽。这是因为当您添加括号时,您调用了函数。

删除括号引用实际的函数,这是你想要的:

$('#homeCat2').load('category.php?id_category=2 #product_list',whenCompleteLoad);

或者您可以使用匿名函数(我更喜欢这种方法):

$('#homeCat2').load('category.php?id_category=2 #product_list', function() {
  var itemNum = $('.ajax_block_product').length;
  alert(itemNum);
});