如何显示/隐藏生成的无序列表
How to show/hide an unordered list that is generated
我使用此代码生成来自给定用户的最后5条tweet。
我想做的是每次显示一条tweet。
我已经修改了脚本,以便生成的<ul>
具有id。您可以看到我在脚本的第6行所做的更改。
下面是我使用的脚本:
$(document).ready(function () {
var tweets = $('#tweetlist li').hide();
i = 0;
(function cycle() {
tweets.eq(i).fadeIn(600)
.delay(4000)
.fadeOut(600, cycle);
i = ++i % tweets.length;
})();
});
由于某些原因,它就是不起作用。我在两个脚本之前都调用了jquery,但列表仍然显示所有项。
这是我一直在使用的jsfiddle:http://jsfiddle.net/wulfmann/qst8atkk/1/
奇怪的是,如果我自己构建列表,它会工作。
我有一种感觉,我错过了一些基本的东西。不可否认,我没有逐行浏览twitter脚本代码,所以我可能在那里遗漏了一些东西。我现在正在学习jquery和javascript,所以我只是想确保我没有错过一些基本的。
编辑:在附件的jsfiddle中,我已经取消了js,以便您可以看到。
你的fadeIn/fadeOut循环是好的。但是,在您的示例中,您在文档加载之后,在异步操作(获取tweet)结束之前运行它,这意味着tweet列表为空,然后呈现完整列表。
要防止这种情况,请使用配置中的customCallback
选项。获取项目后,回调将呈现它们,隐藏它们,然后执行fadeIn/fadeOut循环(demo):
var configProfile = {
"profile": {"screenName": 'twitter'},
"maxTweets": 5,
"enableLinks": true,
"showUser": true,
"showTime": true,
"showImages": false,
"customCallback": handleTweets,
"lang": 'en'
};
twitterFetcher.fetch(configProfile);
function handleTweets(tweets) {
var x = tweets.length;
var n = 0;
var element = document.getElementById('tweets');
var html = '<ul>';
while(n < x) {
html += '<li>' + tweets[n] + '</li>';
n++;
}
html += '</ul>';
element.innerHTML = html;
var tweets = $(element).find('li').hide();
var i = 0;
(function cycle() {
tweets.eq(i).fadeIn(600)
.delay(4000)
.fadeOut(600, cycle);
i = ++i % tweets.length;
})();
}
相关文章:
- 如何用javascript从数组中填充无序列表
- 使用无序列表展开DIV
- Angular JS在无序列表中的2个数组中重复
- jQuery 创建多级无序列表
- 正在将无序列表转换为选择..但有一个转折
- addEventListener单击“无序列表”
- 如何在一个随机化的有序列表中随机化多个无序列表
- jQuery 单击外部元素可向上或向下移动包含选中复选框的无序列表项
- 无序列表 jQuery 在固定位置显示列表中的选定项
- 如何将无序列表分成两部分
- JQUERY 在多个无序列表中选择第 n 个列表元素
- 根据不同长度的数据属性对无序列表中的 li 进行排序(无 jquery)
- 如何创建语言选择下拉列表仅使用无序列表
- 抓取表数据并使用jQuery转换为无序列表
- 如何在Spring MVC中实现无序列表的展开/折叠功能
- 如何根据条件显示包含唯一项目符号的无序列表
- 为什么文本粘在CSS无序列表菜单中的图像下方
- 将函数绑定到用作子菜单的无序列表
- 使用 Javascript 优化一个巨大的无序列表
- 从动态添加到页面的无序列表中获取数据