2012-05-30 90 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图像,同时加载AJAX

+1

给所有投票结束或发布###错误的人。阅读这个问题,他正在进入错误处理程序。 '##'是你如何在coldfusion中转义'#',因为coldfusion变量被封装在'#'中。 –

+0

当然,我在这里做了一个大的假设,因为'##'是引用CF的代码/问题中唯一的东西。绝对不应该排除。 –

+0

凯文是正确的。我在这附近有CF标签...对于混淆抱歉。 – CodeOverRide

回答

3

您的ID选择有两个哈希值,

试试这个:

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

哦,这只是因为它是围绕着冷聚变......需要## – 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

,所以我发现,你不能加载图像在阿贾克斯标签网址。感谢您的答复,但##载只是针对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。

相关问题