function ImageExist(url)
{
var num;
$.ajax({
url:url,
error: function()
{
num = 0;
},
success: function()
{
num = 1;
}
});
return num;
}
function ChangeColor(color, type){
var count = 1;
while(ImageExist("images/"+type+"/"+color+"/"+count+".jpg") != 0){
count++;
}
var str = "";
var cm = new Array(count);
for(var i = 1; i < count; i++){
cm[i] = "<img src=\"images/"+type+"/"+color+"/"+i+".jpg\" onclick=\"ChangeImg('"+type+"','"+color+"','"+i+"')\">";
str = str+cm[i];
}
document.getElementById("prodPhoto").innerHTML = cm[1];
document.getElementById("prodPhotos").innerHTML = str;
}
function ChangeImg(type, color, img){
var light = "<a href=\"images/"+type+"/"+color+"/"+img+".jpg\" rel=\"lightbox[sofa]\" title=\"Comfort M\"/>";
document.getElementById("prodPhoto").innerHTML = light+"<img src=\"images/"+type+"/"+color+"/"+img+".jpg\">"+"</a>";
}
function preload(arrayOfImages) {
$(arrayOfImages).each(function(){
(new Image()).src = this;
// Alternatively you could use:
// (new Image()).src = this;
});
}
此代码应该找出每个文件夹中有多少图像,称为产品和颜色。然后将它们输出到html页面。它在我的笔记本电脑上工作正常,但在大学网络上它挂起了网站。
这可能与不是管理员有关吗?
答案 0 :(得分:0)
问题是你在同步while循环中有一个带有异步Ajax调用的while循环,这就是要求浏览器锁定。没有理由进行Ajax调用以查看是否存在图像。以异步方式使用图像标记。
代码不是100%满足您的需求,只是一个基本的例子。
function checkImage( url, good, bad) {
var img = new Image();
img.onload = good;
img.onerror = bad;
img.src = url;
}
function findImgs () {
var currentImg = -1;
function next(){
currentImg++
checkImage("foo" + currentImg + "jpg", next, done);
}
function done() {
currentImg--;
alert("last Good Count was " + currentImg);
}
}
答案 1 :(得分:0)
您在while
语句中执行了大量的ajax调用,因为imageExist
函数是异步的,但是当您返回num
变量时,始终为undefined
。所以你的代码说,«而函数返回的内容不同于0增量计数,然后重试。»
在net
面板