我编写了以下内容(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渐变(或许像一个新的标签)。有人有建议吗?
答案 0 :(得分:5)
您可能希望通过以下编码获得所需效果:
$(slotname + "div_li" + i).hide().delay(i*n).show("slow");
其中n
是一些软延迟修饰符(以毫秒为单位);我假设i
这里也是索引,因此是一个数字。