function modalClosed(){
$("div#tab" + tabId).find('ul')
.prepend("<li>item</li>")
.hide()
.fadeIn('slow');
}
我希望列表(<li>
(被预置并逐个淡入淡出效果,不幸的是我没有办法使用$(this)
,上面的代码效果不佳,它对所有<li>
都应用了效果。
>这是因为.prepend()
返回的是ul
元素而不是追加的li
元素,因此您隐藏/显示ul
元素。您可以使用prependTo()
方法反转逻辑,现在.hide()
和.fadeIn()
应用于追加的元素而不是ul
元素。
$("<li>item</li>").hide()
.prependTo("#tab"+tabId+" ul")
.fadeIn('slow');
http://jsfiddle.net/5yj7v/
function modalClosed(num) {
$("div#tab" + tabId).find('ul')
.prepend("<li>item</li>")
.hide()
.fadeIn('slow', function() {
// callback function, called when fadeIn has finished
if(num > 1) {
modalClosed(num - 1);
}
});
}
据我了解,您希望在所有 li 项目上一个接一个地淡入淡出效果。如果正确,请尝试以下操作:
var time=1000;
$("div#tab"+tabId+" ul").prepend("<li>item</li>");
$("div#tab"+tabId+" ul li").each(function() {
$(this).hide();
$(this).fadeIn(time);
time+= 800;
});
http://jsfiddle.net/PV4dC/5/