2012-09-09 24 views
0

我抓取当前DOM树中的所有图像。我将它们显示到我的自定义统一div中,并允许用户选择它们。为什么我不能延迟图像的人口?

var allImgs = $('img'); 

allImgs.each(function (index) { 
    var imgUrl = $(this).attr("src"); 
    var newImgTag = $('<img></img>'); 
    newImgTag.attr("src", imgUrl); 
    newImgTag.attr("width", "100px"); 
    newImgTag.attr("height", "100px"); 

    $("#Image-Grid").append(newImgTag); // this works 

    newImgTag.click(function (event) { 
     $('#Selected-Image').empty(); 
     $('#Selected-Image').append(newImgTag); // this doesn`t work why???? 
    }); 
}); 

我能够让所有的图像显示到我的统一div。但是,当我从统一格中选择一张照片时。图像将无法正常显示。

例如,我随机选择一个时尚网站。 http://www.abercrombie.com/webapp/wcs/stores/servlet/ProductDisplay?catalogId=10901&storeId=10051&langId=-1&categoryId=12266&parentCategoryId=%5bLjava.lang.String%3b%403dc73dc7&topCategoryId=12203&productId=1014475

当我选择了PIC之一,我注意到,在src链接,PIC是这样 /anf/50817/img/global/logo-print.png

为什么我不能在点击事件后显示的画面?

+0

''这是一个自动关闭标记...'$('')' – elclanrs

+0

@elclanrs,谢谢...我改变使用自我关闭标记...仍然不适合我.... -_-! ! – jojo

+0

您是否想懒惰加载您的图片?有一个插件:http://www.appelsiini.net/projects/lazyload – balexandre

回答

1
newImgTag.click(function (event) { 
     $('#Selected-Image').empty(); 
     $(this).clone().appendTo('#Selected-Image'); 
}); 

文档:


<div class="container"> 
    <div class="hello">Hello</div> 
    <div class="goodbye">Goodbye</div> 
</div> 

(...)如在讨论中示出了用于.append(),通常当一个元件被插入在DOM的某处,它从旧的位置移动。因此,鉴于代码:

$('.hello').appendTo('.goodbye'); 

产生的DOM结构将是:

<div class="container"> 
    <div class="goodbye"> 
    Goodbye 
    <div class="hello">Hello</div> 
    </div> 
</div> 

为了防止这种情况,而是创建元素的副本,你可以写:

$('.hello').clone().appendTo('.goodbye'); 

这将产生:

<div class="container"> 
    <div class="hello">Hello</div> 
    <div class="goodbye"> 
    Goodbye 
    <div class="hello">Hello</div> 
    </div> 
</div> 
相关问题