jQuery:逐个插入li项目?

时间:2010-05-30 01:02:23

标签: javascript jquery

我编写了以下内容(jQuery插件的一部分),将一组JSON对象中的项插入到<ul>元素中。

...
query: function() {
    ...
 $.ajax({
  url: fetchURL,
  type: 'GET',
  dataType: 'jsonp',
  timeout: 5000,
  error: function() { self.html("Network Error"); },
  success: function(json) {
    //Process JSON
    $.each(json.results, function(i, item) {
                  $("<li></li>")
                   .html(mHTML)
                   .attr('id', "div_li"+i)
                   .attr('class', "divliclass")
                   .prependTo("#" + "div_ul");

               $(slotname + "div_li" + i).hide();
               $(slotname + "div_li" + i).show("slow")
             }
   }
  });
 }
  });
 },
...

这样做可能会在理论上逐个添加<li>项目,但是当我加载页面时,一切都会立即显示出来。相反,有没有一种有效的方法让它们逐一慢慢出现?我将用一个小例子来解释:如果我有3个项目,这个代码会使所有3个项目瞬间出现(至少在我看来)。我希望像1渐弱,然后2渐弱,然后3渐变(或许像一个新的标签)。有人有建议吗?

1 个答案:

答案 0 :(得分:5)

您可能希望通过以下编码获得所需效果:

$(slotname + "div_li" + i).hide().delay(i*n).show("slow");

其中n是一些软延迟修饰符(以毫秒为单位);我假设i这里也是索引,因此是一个数字。