jQuery - 包装动态加载的图像

时间:2011-04-26 09:14:02

标签: jquery

我正在尝试使用链接标记包装动态加载的图像:

        var img = new Image();
        slideData[slide].imgData = img; 
        $(img).load(function () {
            $(this).css('display','none');
            $(this).wrap("<a></a>");
            slidesLoaded++;
        }).attr({src:mediaURL+slideData[slide].image, alt:slideData[slide].title});

这似乎不起作用?当我这样做时:

$(slideData[0].imgData).appendTo('body').fadeIn()

没有标签,只有图片。

这可能吗?

2 个答案:

答案 0 :(得分:1)

那是因为您在<img>中存储了slideData[slide].imgData元素,而不是包装<a>元素。尝试:

$(slideData[0].imgData.parentNode).appendTo('body').fadeIn();

答案 1 :(得分:1)

当你包装一个元素时,这不会改变你在jQuery集中的元素。

此外,当您在文档中的某个位置插入元素时(使用.append.prepend等),然后将元素从其当前位置移除并将其放置在哪里说。

所以发生的事情是你将你的图像放在<a>标签内,然后立即将其移除以将其放入体内。 <a>标记永远不会附加到正文中。显然,解决方案是附加<a>而不是图像。

$(img).load(function () {
    $("<a></a>")
        .append($(this).hide())
        .appendTo(document.body);
});