Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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
jquery某些url调用为空_Jquery_Url_Src - Fatal编程技术网

jquery某些url调用为空

jquery某些url调用为空,jquery,url,src,Jquery,Url,Src,我正在利用jquery用图像填充一些div。当我单击jstree节点时,div应该填充。它可以工作,但有时我对图像的调用返回为空,即使目录中有图像 下面是一段代码,显示了我正在做的事情: }).bind("select_node.jstree", function (event, data) { var ImgTeamA; ImgTeamA = "img/"+node_id+"-teamA.png"; myImg1 = new Image; myImg1.src=ImgTeamA alert

我正在利用jquery用图像填充一些div。当我单击jstree节点时,div应该填充。它可以工作,但有时我对图像的调用返回为空,即使目录中有图像

下面是一段代码,显示了我正在做的事情:

}).bind("select_node.jstree", function (event, data) {

var ImgTeamA;
ImgTeamA = "img/"+node_id+"-teamA.png";
myImg1 = new Image;
myImg1.src=ImgTeamA

alert(myImg1.width);
alert(myImg1.src)

$("#div1").html(myImg1).css("border","1px solid");

问题是这个。尽管img目录中存在myImg1,但有时警报(myImg1.width)显示为0。当我再次单击该节点时,div1将显示该图像。这是零星的。有时单击显示图像,有时我必须双击节点。谁能给我指点一下如何解决这个问题

在将图像加载到浏览器之前,无法获取图像的宽度,请尝试以下操作:

}).bind("select_node.jstree", function (event, data) {
    var myImg1 = new Image;
        myImg1.src = "img/"+node_id+"-teamA.png";
        myImg1.onload = function() {
            alert(myImg1.width);
            alert(myImg1.src);
        }

    $("#div1").html(myImg1).css("border","1px solid");
});

当宽度为0时,
src
会说什么?你不能计算图像的宽度,直到它仍然不起作用@Blazemonger-应通过检查图像是否具有宽度来修复。编辑我的答案?它使用
新图像
,因此它根本不需要在DOM中渲染,只需要加载。是的,我知道——你无法计算预加载图像的宽度。您必须等待它在页面上实际呈现。但是,如果图像被缓存,则使用
load
事件不起作用,因此您必须使用@Blazemonger-为什么需要在页面上呈现它。只要使用javascripts
new Image
,它在不渲染的情况下就可以正常工作,看到了吗?在大多数浏览器中,每次使用本机onload函数都会正常工作。根据我的经验,缓存问题在jQuery的load()函数和
元素中更常见,这两个元素的工作方式有点不同???