只有在ajax调用success
时才需要调用函数。
<script>
function removeFromCart(id) {
var value = "";
for(var i=0; i<id.length; i++)
if(!isNaN(id[i]))
value += id[i];
$.ajax({
type: "POST",
url: "http://url.com/removefromcart.php",
data: "id="+value,
success: function(response){
afterRemove(response);
}
});
}
function afterRemove(response) {
if(response[0] == "r") {
var prezzo = "";
for(var i = 1; i<respose.length; i++)
var prezzo += response[i];
document.getElementByid("prezzo").innerHTML = prezzo+".00 €";
$("#segnale"+value).fadeOut();
}
}
</script>
问题是Firebug在页面加载时给出了这个错误:
invalid variable initialization: var prezzo += response[i];
这是因为afterRemove
函数在页面加载时调用,而不仅仅是在ajax成功时调用。怎么解决这个问题?
答案 0 :(得分:6)
你定义/ var变量prezzo
两次
var prezzo = ""; // <-- here
for(var i = 1; i<respose.length; i++)
var prezzo += response[i]; // <-- and here
答案 1 :(得分:2)
var prezzo += response[i]
这是无效的,因为var prezzo
表示您正在创建名为prezzo
的新变量。然后,您尝试添加到该变量。您无法添加到全新的变量,因为它还没有值。只需删除var
。
答案 2 :(得分:1)
var prezzo += response[i];
这条线毫无意义。 a += b
表示a = a+b
。
在您的情况下,您正在var prezzo += response[i];
var prezzo = prezzo + response[i];
。 prezzo
尚不存在(因为您在那里声明它),因此您无法添加其值,因为它还没有值(还)。
(另外,它的语法无效)
编辑:我注意到你之前宣布过var prezzo = "";
,所以只需删除var
:
prezzo += response[i];
应该看起来像:
var prezzo = "";
for(var i = 1; i<response.length; i++)
prezzo += response[i];
答案 3 :(得分:1)
如果在执行++时初始化变量。你总会得到错误...
function afterRemove(response) {
if(response[0] == "r") {
var prezzo = "";
for(var i = 1; i<respose.length; i++)
prezzo += response[i];
document.getElementByid("prezzo").innerHTML = prezzo+".00 €";
$("#segnale"+value).fadeOut();
}
}