如果还没有加载,我需要加载图像。 为此我正在使用这样的错误函数:
$.ajax({
type: "POST",
url: "inc/functions.php",
data: { productID: productIDVal, action: "addToCart"},
success: function(theResponse) {
busy=false;
$('#buyButton')
.error(function(){
var t = $("<img id='buyButton' src='images/checkout.png' />");
$.append(t);
});
}
});
但它不起作用。我在这里做错了吗?
提前致谢。
答案 0 :(得分:3)
您需要指定附加图像的位置:
$('#buyButton').append(t); // NOT $.append(t);
// OR $(this).append(t);
更多信息here
关于调试javascript的一些常规技巧。
快速而肮脏:在alert
之类的错误函数的第一行添加alert('inside error')
消息。然后加载页面并查看警报消息是否显示。您可以将变量放在警报消息中以查看其值。如果您没有看到警告消息,则表示由于某种原因甚至没有加载代码,因此您必须在较早的时候发出警报消息。 (这可能非常繁琐)。
更好的方法:开始使用Firebug或Safari的Web Inspector来调试javascript。只需将debugger
放在代码中的任何位置,当浏览器到达该行代码时,它将停止并为您提供一个控制台,可以访问代码中此时可用的所有变量和函数。
问题可能在于AJAX请求。通过尝试此代码查看它返回的内容:
$.ajax({
type: "POST",
url: "inc/functions.php",
data: { productID: productIDVal, action: "addToCart"},
success: function(data){ alert('success!'); },
error: function(XMLHttpRequest, textStatus, errorThrown){ alert(errorThrown) ;}
})
您可以将alert
消息替换为debugger
,以进一步检查Firebug的内容。
答案 1 :(得分:0)
您应该将代码移至错误块
从成功块中删除
error: function(request,error) {
var t = $("<img id='buyButton' src='images/checkout.png' />");
$(this).append(t);
}
骨架像这样
$.ajax({
},
beforeSend: function() {
},
error: function(request,error) {
var t = $("<img id='buyButton' src='images/checkout.png' />");
$(this).append(t);
},
success: function(request) {
} // End success
}); // End ajax method