Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的程序表现得好像没有';在服务器上找不到映像?_Javascript_Jquery_Ajax_Algorithm - Fatal编程技术网

Javascript 为什么我的程序表现得好像没有';在服务器上找不到映像?

Javascript 为什么我的程序表现得好像没有';在服务器上找不到映像?,javascript,jquery,ajax,algorithm,Javascript,Jquery,Ajax,Algorithm,我已经有了一个用javascript加载图像构建元素的库,如下所示: $(window).load(function() { $("#getElement").click(function() { for (var i = 1; i <= 10; i++) { var ancla = document.createElement("A"); var img = document.createElement("IMG")

我已经有了一个用javascript加载图像构建元素的库,如下所示:

$(window).load(function() {
    $("#getElement").click(function() {
        for (var i = 1; i <= 10; i++) {
            var ancla = document.createElement("A");
            var img = document.createElement("IMG");
            var text = document.createTextNode("");
            img.src = 'images/tile' + i + '.jpg';
            img.id = "image";
            img.appendChild(text);
            ancla.href = 'images/tile' + i + '.jpg';
            ancla.className = "boxing";
            ancla.appendChild(text);
            document.getElementById("gallery").appendChild(ancla);
            ancla.appendChild(img);
            loadimage('images/tile' + i + '.jpg');
        }
    });
});
在click函数的for语句之后,我输入了条件的代码

if (warning == true) {
    $("#gallery").justifiedGallery({
        filter: false,
        rowHeight: 180
    });
} else {
    $("#dynamicCont").load('noImage.txt');
} 

这就是代码不能正常工作的地方,因为即使函数loadimage()找到图像,它也总是在条件的else中输入。有什么我遗漏的吗?或者其他方法使其正常工作?

可能发生的情况是以下代码:

if (warning == true) {
    $("#gallery").justifiedGallery({
        filter: false,
        rowHeight: 180
    });
} else {
    $("#dynamicCont").load('noImage.txt');
}
在您对服务器的请求完成之前正在运行。请记住,这是一个异步请求

只需将代码移动到回调函数中,如下所示:

function imagexists() {
  if (req.readyState == 4) {
    if (req.status == 200) {
      image.style.display = "block";
      image.src = imagepath;

      $("#gallery").justifiedGallery({
        filter: false,
        rowHeight: 180
      });

    } else {
      image.style.display = "none";
      $("#dynamicCont").load('noImage.txt');
    }
  }
}

您实际上不需要这样的警告布尔值。

是否将文本附加到img元素?这是错误的。您不能向img元素添加任何子元素“如果至少找到一个图像,则变量为布尔值且变为true;如果未找到图像,则变为false”。在这种情况下,您得到了
warning=true
warning=false
的反转。我尝试了您所说的内容,效果很好,只是现在我不知道为什么用$(当库中没有图像时,不会调用“#dynamicCount”).load('noImage.txt')。很难说。如果使用调试器进入代码,您是否看到它进入
$(“#dynamicCount”).load('noImage.txt');
行?现在运行正常,进入$(“#dynamicCount.load('noImage.txt'))的条件;行是一个空请求,它意味着一个req.status=404Ok很好。我以为
else
会捕获404或任何其他响应代码,但只要它工作:)
function imagexists() {
  if (req.readyState == 4) {
    if (req.status == 200) {
      image.style.display = "block";
      image.src = imagepath;

      $("#gallery").justifiedGallery({
        filter: false,
        rowHeight: 180
      });

    } else {
      image.style.display = "none";
      $("#dynamicCont").load('noImage.txt');
    }
  }
}