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

时间:2011-11-25 17:52:11

标签: javascript jquery load

我正在尝试从我的网站下的另一个页面加载一些元素,我做到了。 但我也试图对正在加载的元素应用一些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(); 但是,没有运气......

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您正在将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);
});