#javascript #jquery #ajax
#javascript #jquery #ajax
Вопрос:
Я должен вызывать функцию только при вызове 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 amp;euro;";
$("#segnale" value).fadeOut();
}
}
</script>
Проблема в том, что Firebug выдает мне эту ошибку при загрузке страницы:
invalid variable initialization: var prezzo = response[i];
Это потому, что afterRemove
функция вызывается при загрузке страницы, а не только при успешном выполнении ajax. Как это можно исправить?
Комментарии:
1. Вы написали
respose
вместоresponse
в своейfor
инициализации.2. Просто К вашему сведению, будьте последовательны; не смешивайте запросы jQuery (
$("#segnale" value)
) и не-jQuery (document.getElementByid("prezzo")
). Запросы, отличные от jQuery.$("#prezzo").html(prezzo ".00 amp;euro;");
Ответ №1:
вы определяете / var переменную prezzo
дважды
var prezzo = ""; // <-- here
for(var i = 1; i<respose.length; i )
var prezzo = response[i]; // <-- and here
Ответ №2:
var prezzo = response[i]
Это недопустимо, потому что var prezzo
означает, что вы создаете новую переменную с именем prezzo
. Затем вы пытаетесь добавить к этой переменной. Вы не можете добавить к переменной, которая является совершенно новой, потому что у нее еще нет значения. Просто отбросьте var
.
Ответ №3:
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];
Ответ №4:
если вы инициализируете переменную при выполнении . вы всегда будете получать ошибку…
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 amp;euro;";
$("#segnale" value).fadeOut();
}
}