假设this
是dom中的某个现有块级元素而image
是http://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'); }));
或者它应该以其他方式完成?
答案 0 :(得分:1)
.append()
返回您追加的对象,以获取您在链中追加的对象,改为使用.appendTo()
:
$('<img>').appendTo(this).load(function() { alert('loaded'); })
.attr('src', opts.image);
两个版本都会返回之前链中的内容...但由于您要处理<img>
,请使用.appendTo()
表单。另外,为了获得可靠的负载结果,请在设置src
之前附上您的加载处理器,如上所述。
答案 1 :(得分:0)
不, append 会返回您要追加的jQuery对象。来源(1.4.4)
append: function() {
return this.domManip(arguments, true, function( elem ) {
if ( this.nodeType === 1 ) {
this.appendChild( elem );
}
});
}