请看这个脚本
var src="some.jpg";
var img = new Image();
img.src = src;
img.id = "crop_image";
$("#crop_image").load(function()
{
$("#crop_cont").append(img);
})
为什么在我的.load
函数中我无法访问img元素?
非常感谢
更新:
但以下作品
$('<img src="'+src+'" />').load(function()
{
var img = new Image();
img.src = src;
$("#crop_cont").append(img);
})
答案 0 :(得分:2)
这两个例子都没有任何意义。
首先,您创建一个Image但不将其添加到DOM。因此,当你要求jQuery去找它时,它不能,因为它还没有。
在第二个中,您将创建一个新的图像标记,它(内部)将为jQuery提供一个实际的DOM元素。但是,将Image对象追加到DOM的调用似乎是多余的。你已经 <img>
所以不需要另外一个。
我会按如下方式更改第二个:
$('<img src="'+src+'" />').load(function() {
$("#crop_cont").append(this);
});
答案 1 :(得分:1)
$("#crop_image")
找不到您的新图片,因为您尚未将其添加到DOM中。请改用$(img)
。
正确的方法是:
var src="some.jpg";
var img = new Image();
img.src = src;
img.id = "crop_image";
$(img).load(function(){
$("#crop_cont").append(this);
});
答案 2 :(得分:0)
#crop_image
,它实际上会附加到文档吗?如果是的话?
答案 3 :(得分:0)
你需要向that.right提供html
<img src="" />
否则如何显示
答案 4 :(得分:0)
图像有它自己的onload事件,它可能最容易做这样的事情
var src="some.jpg";
var img = new Image();
img.id = "crop_image";
img.onload = $("#crop_cont").append(img); // event added
img.src = src;
编辑:错误,我的意思是图像对象。