该函数用于删除元素并继续循环。我使用div:FIRST或LAST在元素被移除后继续。如何从下一个元素继续。 例如,去掉注释3之后,我可以把它的循环,从注1.重新开始,但其实我是想它从Notes继续4. 感谢jQuery循环 - 从下一个元素继续
Style
#NotesBlock {
position: absolute;
width: 600px;
margin: 0px auto;
}
.divNotes {
display: none;
padding: 12px;
width: 100%;
text-align: center;
position: absolute;
}
<a href="#" class="CloseNotes">Not Interesting</a>
<div id="NotesBlock">
<div class="divNotes">
<div class=" NotesTopic">
<h4>Topic 1</h4>
<p>1st Topic description</p>
</div>
</div>
<div class="divNotes">
<div class=" NotesTopic">
<h4>Topic 2</h4>
<p>2nd Topic description</p>
</div>
</div>
<div class="divNotes">
<div class=" NotesTopic">
<h4>Topic 3</h4>
<p>3rd Topic description</p>
</div>
</div>
<div class="divNotes">
<div class=" NotesTopic">
<h4>Topic 4</h4>
<p>4th Topic description</p>
</div>
</div>
<div class="divNotes">
<div class=" NotesTopic">
<h4>Topic 5</h4>
<p>5th Topic description</p>
</div>
</div>
脚本
var notesElement = null;
function notesLoop(elem) {
notesElement = elem;
elem.fadeIn()
.delay(1500)
.fadeOut(function() {
notesLoop(elem.next());
if(elem.next().length === 0) {
notesLoop($(".divNotes:first"));
}
});
}
$(document).ready(function() {
notesLoop($(".divNotes:first"));
$(".CloseNotes").click(function (e) {
e.preventDefault();
if (notesElement)
$(notesElement).remove();
notesLoop($(".divNotes:first"));
});
});
UPDATE:
我没用过PUSH()或PUSHSTACK()。我正在尝试使用它们更新此代码。可能吗?我必须为此发布另一个问题吗?由于
我更新的代码:
如果你想讨论pushstack :) – carter