2010-11-12 48 views
0

看這個劇本請問題的圖像()對象

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元素?

感謝很多

UPDATE:

但接下來的作品

$('<img src="'+src+'" />').load(function() 
       { 
        var img = new Image(); 
        img.src = src; 
        $("#crop_cont").append(img); 
       }) 
+0

是的,沒有提供DOM結構它怎麼顯示..也見我的答案 – kobe 2010-11-12 17:42:11

回答

2

無論這些兩個例子真正使任何意義。

在第一個中,您創建一個圖像,但不會將其添加到DOM。因此,當你問jQuery去找它時,它不能因爲它還沒有找到。

第二,你創建一個新的圖像標籤,它(內部)將給jQuery一個實際的DOM元素來處理。但是,將您的Image對象附加到DOM的調用看起來是多餘的。你已經得到<img>所以不需要另一個。

我會改變如下第二個:

$('<img src="'+src+'" />').load(function() { 
     $("#crop_cont").append(this); 
    }); 
0

#crop_image,它實際上得到追加到文檔?如果是的話?

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); 
}); 
0

您需要提供的HTML that.right

<img src="" /> 

否則,它怎麼能顯示

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; 

編輯:err,我的意思是圖像對象。