在Ajax调用后格式化元素

时间:2015-06-14 12:45:31

标签: javascript jquery ajax

我正在尝试将ajax调用应用格式化为在完成之前不存在的元素。在实际调用中使用成功函数不起作用。该函数被正确调用,但未找到元素('.content-cell'),可能是因为它尚不存在。大多数类似的答案都涉及事件委托,但没有应用样式。

我接近这个吗?在ajax检索后应用样式和处理程序的最佳方法是什么?

$("#calendar-panel").load("url", setupCal());


function setupCal(){
    console.log("setupCal");
    var cell_width = $('.weekday-cell').width();
    if ($('.content-cell').length){
        console.log("Content cell exists");
    } else {
        console.log("Content cell does not exist");
    }
    $('.content-cell').css({height:cell_width});

此代码的控制台输出是:'setupCal'; '内容单元格不存在'。

1 个答案:

答案 0 :(得分:2)

我认为问题可能是您实际上正在执行setupCal函数的行中调用load函数。这是因为你已经包含了实际执行函数的括号(并返回它的结果),而不是将它作为回调参数传递。

您可以尝试仅引用该行中函数的名称,如下所示:

$("#calendar-panel").load("url", setupCal);

如果在setupCal函数被'定义'时调用了load函数,那么该元素肯定不会存在,因此会为您提供您所看到的输出:“”内容单元格不会存在 “”。