Проверьте, существует ли изображение, если не загружаете его - PullRequest
1 голос
/ 12 декабря 2010

Мне нужно загрузить изображение, если оно еще не загружено.Для этого я использую функцию ошибки следующим образом:

$.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);
 });
}  
});  

Но она не работает.Я что-то здесь не так делаю?

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 12 декабря 2010

Вам необходимо указать, куда добавить изображение:

$('#buyButton').append(t);  // NOT $.append(t);
// OR $(this).append(t);

Подробнее здесь

Некоторые общие советы по отладке javascript.

Быстро и грязно: поместите сообщение alert в первую строку функции ошибки, например alert('inside error').Затем загрузите страницу и посмотрите, появляется ли предупреждение.Вы можете поместить переменные в предупреждающее сообщение, чтобы увидеть их значения.Если вы не видите предупреждающее сообщение, это означает, что код по какой-то причине даже не загружается, поэтому вы должны поместить предупреждающее сообщение в более раннюю точку.(Это может быть очень утомительно).

Лучший способ: начать использовать Firebug или веб-инспектор Safari для отладки 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.

0 голосов
/ 12 декабря 2010

вы должны переместить код в блок ошибок

удалить из блока успеха

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...