這段代碼應該是通過淡出最頂層的元素,直到只有第一個元素可見,然後淡入最頂層的元素,從堆疊的list-elements(我註釋掉了CSS,這樣我就可以看到發生了什麼)其餘的重新開始。如果我把腳本放在<body>
裏面的內容下面並丟掉$(function() {
,它的工作原理很好,但是在<head>
中沒有任何反應。我昨天寫了這個,今天我仍然看不到這個錯誤,所以我在這裏發佈。jQuery在<head>不工作?
<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
ul {
position: relative;
}
ul li {
/*position: absolute;
left: 0;
top: 0;*/
}
</style>
<script src="jquery-1.5.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
var i = 0;
var count = $('ul li').size();
function fade() {
if (i < count-1) {
$('ul li:nth-child('+(count-i)+')').fadeOut(300);
i++;
} else {
$('ul li:nth-child('+count+')').fadeIn(300, function(){$('ul li').show();});
i = 0;
}
}
$('button').click(function() {
setInterval('fade()', 1000);
});
});
</script>
</head>
<body>
<button>Slideshow GO!</button>
<ul id="slider">
<li><img src="1.jpg" /></li>
<li><img src="2.jpg" /></li>
<li><img src="3.jpg" /></li>
<li><img src="4.jpg" /></li>
</ul>
</body>
</html>
感謝
非常感謝,有效。我曾試過'setTimeout(fade(),1000);',沒有引號,但沒有做任何事情。現在沒有它的括號,但我真的不明白爲什麼。 – Hanz 2011-03-08 08:29:09
@Hanz,用括號括起來,'fade'獲取**,並將返回值傳遞給'setTimeout'。相反,您希望傳遞函數本身,以便稍後調用它。 – 2011-03-08 08:33:29
這很有道理,謝謝。我也驚訝於我在這裏得到答覆的速度有多快。乾杯。 – Hanz 2011-03-08 08:36:21