首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于ID的LIs序列显示

基于ID的LIs序列显示
EN

Stack Overflow用户
提问于 2009-06-20 03:25:30
回答 4查看 821关注 0票数 2

我正在创建一个for循环,该循环调用javascript效果并将其应用于安莉,并按顺序执行。我要说的是:

代码语言:javascript
复制
$(document).ready(function () {
    for(i=1;i<=10;i++) {
        $("li#"+i).show();
    }
});

然而,这是行不通的。我需要它把效果应用于LI#1然后LI#2,LI#3.诸若此类。

我试图做的是类似于当你点击页面底部的“更多”按钮,而不是跳跃,我希望它轻松下来。

编辑:--我不能仅仅将LIs包装在一个DIV中,因为我要将LIs添加到一个UL元素中。

然而,如果有一种方式来动画的UL,因为它改变了大小,我将是所有的。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-06-20 03:37:56

代码语言:javascript
复制
$(document).ready(function () {
    for(i=1;i<=10;i++) {
        $("li#"+i).show("slow");
    }
});

看看显示(速度,[回拨])。从医生那里:

使用优美的动画显示所有匹配的元素,并在完成后触发可选回调。 每个匹配元素的高度、宽度和不透明度都会根据指定的速度动态更改。

此外,还有其他隐藏和显示元素的方法,如fadeInfadeOut。看看http://docs.jquery.com/Effects

我用静态数据快速模拟了您所追求的那种东西:

代码语言:javascript
复制
var $lis = $('<li>blha blhahah lajlkdj</li><li>blha blhahah lsdfsajlkdj</li>').hide();
$('ul').append($lis);
$lis.show("slow");

它可以工作,因此可以想象,您可以执行如下操作,而不必为迭代元素ID而烦恼:

代码语言:javascript
复制
$.load('/items/?p=2',function(data) {
    var $lis = $(data).hide();
    $('ul').append($lis);
    $lis.show("slow");
});

为了明确起见,上面对$.load的调用假设站点上的/items/?p=2的输出是一堆LIs

票数 1
EN

Stack Overflow用户

发布于 2009-06-20 04:15:28

如果您希望每一个都以相同的速度出现,但是在每一个之间稍微延迟,您可能需要使用setTimeout.例如..。

代码语言:javascript
复制
$(document).ready(function () {        
    var showListItem = function(index) {
        $("li#"+index).show("slow")
    };
    for(i=1;i<=10;i++) {
        setTimeout(function() { showListItem(i); }, (i * 100))
    }
});

这看起来有点傻,但如果我没记错的话,除非您将索引(i)封装在某种类型的附件中,否则执行的方法总是将i的值视为10。

票数 1
EN

Stack Overflow用户

发布于 2009-06-20 03:41:13

另外,如果您在另一个通过Ajax加载新项目的事件上触发这个操作(比如在单击"More“按钮之后),那么您需要将您的逻辑封装在.live()中,这在jQuery 1.3中是可用的。

如果您使用的是jQuery 1.2,则可以使用利夫科利

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1020868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档