2012-05-30 4 views
1
$.ajax({ 
     url: "/image/productImages.jpg", 
     timeout:5000, 

     beforeSend: function(){ 
    // Handle the beforeSend event 
     $('##loading').show(); 
     }, 

     complete: function(){ 
     // Handle the complete event 
     $('##loading').hide(); 
     }, 

     success: function (data) { 
      alert("image was added successfully"); 
     }, 

     error: function() { 
      alert("There was an error. Image could not be added, please try again"); 
     } 
    }); 

Я хочу показать загрузку gif при загрузке изображения, а затем удалить его после загрузки изображения. Здесь у меня есть этот код, но это прямо связано с ошибкой. кто-нибудь знает, почему и как это исправить. Заранее спасибо!Отображение загрузки изображения GIF при загрузке с помощью AJAX

+1

Все, кто голосует, закрывают это или публикуют, что '##' неверно. Прочитайте вопрос, он добирается до обработчика ошибок. '##' - это то, как вы избегаете '#' в coldfusion, поскольку переменные coldfusion завернуты в '#'. –

+0

Конечно, я делаю здесь большое предположение, так как «##» - это единственное в коде/вопросе, которое ссылается на CF. Определенно не следует это исключать. –

+0

Кевин прав. У меня есть бирка CF вокруг этого этого ... извините за путаницу. – CodeOverRide

ответ

3

Ваш селектор имеет два хэш,

Попробуйте вместо этого:

$('#loading').show(); 
+0

О, это просто потому, что он постучал вокруг Cold Fusion ... необходимо ## – CodeOverRide

1

Если вы получаете в обработчик ошибок, то ошибка будет связана с данными, которые в настоящее время возвращенных сервер. Попробуйте это в качестве обработчика ошибок, чтобы получить больше информации о том, что происходит (просмотреть результат в консоли браузера):

error: function (x,y,z) { 
    alert("There was an error. Image could not be added, please try again"); 
    console.log(x,y,z); 
    //alert(x + "\n" + y + "\n" + z); 
} 

Однако, есть более простой способ для предварительной загрузки изображения. Попробуйте это:

$("#loading").show(); 
var img = new Image(); 
$(img).load(function(){ 
    $("#loading").hide(); 
}); 
img.src = "/image/productImages.jpg"; 
+1

Кроме того, следите за запросом/ответом в консоли и можете быстро указать на некоторые ошибки. –

0

поэтому я обнаружил, что вы не можете загрузить изображение в качестве URL-адреса в теге .ajax. спасибо за ответ, но ## загрузка только для ColdFusion тегов

.load() рекомендуется так:

var img = $("<img />").attr('src', 'http://somedomain.com/image.jpg') 
        .load(function() { 
        if (!this.complete || typeof this.naturalWidth == "undefined" || this.naturalWidth == 0) { 
         alert('broken image!'); 
        } else { 
         $("#something").append(img); 
        } 
      }); 

Однако, это также нарушает мой код, я осуществивших и не работает IE ... Unfornately.

Смежные вопросы