JQuery 依次显示和隐藏 p 个元素
JQuery showing and hiding p elements one after the other
我正在尝试使用 JQuery 遍历多个 p 元素来显示和隐藏它们,但我就是无法让它工作。我也试过 for 循环。当前显示和隐藏所有 p 元素,我想一个接一个地显示和隐藏它们。这是我的代码:
HTML
<p hidden="" class="tweet-1">"Lorem Ipsum"</p>
<p hidden="" class="tweet-2">"Lorem Ipsum"</p>
<p hidden="" class="tweet-3">"Lorem Ipsum"</p>
等等
JQuery
var i=0
$("p").each(function() {
$(".tweet-" + i).show().hide();
i+=1
});
不太明白
但是修复你的 js :
var i=0;
$("p").each(function() {
$(".tweet-" + i).show(1000).hide(2000);
i+=1;
});
而且我认为你添加一个 delay() 会很好,比如:How can I use delay() with show() and hide() in Jquery
这对我有用:
$("[class^=tweet-]").each(function(index){
$(this).delay(500*index).fadeIn();
});
但我需要更改 css 显示 none 段落中的 "hidden" 属性。
<p class="tweet-1" style="display:none">"Lorem Ipsum 1"</p>
<p class="tweet-2" style="display:none">"Lorem Ipsum 2"</p>
<p class="tweet-3" style="display:none">"Lorem Ipsum 3"</p>
如果您希望 p 元素一次只显示一个,那么实现此功能的最佳方法是使用 jQuery promises。此外,您可能会考虑使用 i = 1 而不是 i = 0,因为您没有 class "tweet-0".
var i=1;
var arrayOfPromises = [];
$("p").each(function() {
if (i == 1)
{
$(".tweet-" + i).show();
}
else
{
$.when(arrayOfPromises[i-1]).done(function() {
$(".tweet-" + i).show();
});
}
arrayOfPromises.push($(".tweet-" + i).hide());
i+=1;
});
我正在尝试使用 JQuery 遍历多个 p 元素来显示和隐藏它们,但我就是无法让它工作。我也试过 for 循环。当前显示和隐藏所有 p 元素,我想一个接一个地显示和隐藏它们。这是我的代码:
HTML
<p hidden="" class="tweet-1">"Lorem Ipsum"</p>
<p hidden="" class="tweet-2">"Lorem Ipsum"</p>
<p hidden="" class="tweet-3">"Lorem Ipsum"</p>
等等
JQuery
var i=0
$("p").each(function() {
$(".tweet-" + i).show().hide();
i+=1
});
不太明白
但是修复你的 js :
var i=0;
$("p").each(function() {
$(".tweet-" + i).show(1000).hide(2000);
i+=1;
});
而且我认为你添加一个 delay() 会很好,比如:How can I use delay() with show() and hide() in Jquery
这对我有用:
$("[class^=tweet-]").each(function(index){
$(this).delay(500*index).fadeIn();
});
但我需要更改 css 显示 none 段落中的 "hidden" 属性。
<p class="tweet-1" style="display:none">"Lorem Ipsum 1"</p>
<p class="tweet-2" style="display:none">"Lorem Ipsum 2"</p>
<p class="tweet-3" style="display:none">"Lorem Ipsum 3"</p>
如果您希望 p 元素一次只显示一个,那么实现此功能的最佳方法是使用 jQuery promises。此外,您可能会考虑使用 i = 1 而不是 i = 0,因为您没有 class "tweet-0".
var i=1;
var arrayOfPromises = [];
$("p").each(function() {
if (i == 1)
{
$(".tweet-" + i).show();
}
else
{
$.when(arrayOfPromises[i-1]).done(function() {
$(".tweet-" + i).show();
});
}
arrayOfPromises.push($(".tweet-" + i).hide());
i+=1;
});