1

我是 jquery 和 javascript 的新手,如果这个问题看起来很愚蠢,我很抱歉。

我尝试在几个 div 中加载相应文件夹的内容(图像)以制作画廊。

<div id="menu">
<div class="gallery" id="div0">ok0</div>
<div class="gallery" id="div1">ok1</div>
<div class="gallery" id="div2">ok2</div>
<div class="gallery" id="div3">ok3</div>
<div class="gallery" id="div4">ok4</div>
<div class="gallery" id="div5">ok5</div>        
</div>

<script>
var $container = $("#menu div.gallery");    
  $container.each(function(){
    var $n = $(this).attr('id');
    tl = 0;

    var img = ["0001","0002","0003","0004","0005","0006","0007","0008","0009"];
    $.each(img,function (i, v) {
    $container.append('<div class="gallery_img" style="top:' + tl + 'px; left:' + tl + 'px; background-image:url(imgsmall/'+ $n +'/'+ v +'.jpg);"></div>');
      tl += 8;});           
});

$container.width(tl + 200).height(tl + 200).find("div").mouseover(
    function () {
    $(this).topZIndex();
    }
);  
</script>

每个 div id 都对应于文件夹的名称,但由于 $container.each() 函数和 $.each() 函数,我找不到上传好 div 中好文件夹内容的方法。这样它会上传每个 div 中所有文件夹的内容。

另外我该如何替换这个数组

  var img = ["0001","0002","0003","0004","0005","0006","0007","0008","0009"];

有一些整洁的东西?

4

1 回答 1

0

这样它会上传每个 div 中的所有文件

这是因为对于每一个<div>你循环遍历所有图像以将它们附加到 DOM。

如果<div>和图像的顺序相同,您可以执行以下操作:

var img = ["0001","0002","0003","0004","0005","0006","0007","0008","0009"];
$container.each(function(index, el){
    var $n = el.attr('id');
    tl = 0;

    var currentImg = img.splice(index, 1);

    el.append('<div class="gallery_img" style="top:' + tl + 'px; left:' + tl + 'px; background-image:url(imgsmall/'+ $n +'/'+ currentImg +'.jpg);"></div>');

      tl += 8;           
});
于 2013-09-23T09:21:44.807 回答