2010-11-14 58 views
2

假設this是在DOM一些現有的塊級元素和imagehttp://www.google.com/images/srpr/nav_logo25.png執行下列操作不起作用:附加函數是否返回附加對象?

$(this).append('<img>').attr('src', image).load(function() { alert('loaded'); }); 

它應該做如下?:

$(this).append($('<img>').attr('src', opts.image).load(function() { alert('loaded'); })); 

或者它應該是做了其他的方式?

回答

1

.append()將返回附加到對象,讓你在鏈附加的對象,使用.appendTo()代替:

$('<img>').appendTo(this).load(function() { alert('loaded'); }) 
         .attr('src', opts.image); 

兩個版本返回的內容是在鏈前面......不過既然你想使用.appendTo()表格處理<img>。此外,爲了獲得可靠的負載結果,請在之前附上您的負載處理器,如上所述設置src

+0

什麼是你的例子中的'this'? – 2010-11-14 11:54:00

+0

@Russ - 它可以是任何元素(接受兒童),與OP所要求的一樣。 – 2010-11-14 11:57:18

0

不,append返回您要附加到的jQuery對象。來源(1.4.4)

append: function() { 
    return this.domManip(arguments, true, function(elem) { 
     if (this.nodeType === 1) { 
      this.appendChild(elem); 
     } 
    }); 
} 
+0

沒有更多上下文的源代碼不會顯示太多,因爲您不知道'domManip'返回的內容。 – 2010-11-14 11:48:26