我正在尝试将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'; '内容单元格不存在'。
答案 0 :(得分:2)
我认为问题可能是您实际上正在执行setupCal
函数的行中调用load
函数。这是因为你已经包含了实际执行函数的括号(并返回它的结果),而不是将它作为回调参数传递。
您可以尝试仅引用该行中函数的名称,如下所示:
$("#calendar-panel").load("url", setupCal);
如果在setupCal
函数被'定义'时调用了load
函数,那么该元素肯定不会存在,因此会为您提供您所看到的输出:“”内容单元格不会存在 “”。