我開始學習Javascript和jQuery。 我想用jQuery做一個簡單的幻燈片放映,它會逐個顯示列表無序列表項目。javascript執行順序
我的代碼是在這裏:on jsfiddle
我以爲我會通過遍歷列表項的for循環進行幻燈片放映,並與淡入淡出和效果,如下面顯示出來:
for(var i = 0; i < 3; i++)
{
$('#slider li:nth-child('+ i +')')
.fadeIn()
.delay(1000)
.fadeOut();
}
但它只顯示列表中的最後一項。
我讀到我需要在一個單獨的函數中關閉i
變量的值,因爲它看到在循環中i
的值增加到2。所以,我做了一個單獨的函數,它關閉了i
的值並調用函數。但它仍然是一樣的,顯示列表的最後一項。
所以,我只是想通過生成類似下面的列表項的兩個獨立的效果,而無需環路嘗試:
$('#slider li:first-child')
.fadeIn()
.delay(1000)
.fadeOut();
$('#slider li:nth-child(2)')
.fadeIn()
.delay(1000)
.fadeOut();
但是就像上面寫的不按順序顯示列表項。運行代碼時,看起來第一個項目顯示得非常快,最後一個項目按預期顯示。
我寫它像一個C或Java代碼,認爲它會從上到下執行。但它看起來像Javascript是不同的,我不明白一個關鍵的Javascript概念。
所以,我的問題是爲什麼它不按順序顯示列表項目,只顯示最後一個項目,我應該知道什麼才能使它按照預期工作。
謝謝。
謝謝大家的答案! – Ari 2011-01-24 01:32:02