2013-02-08 36 views
0

每天都學習了很多關於jQuery的。然而,似乎我不能在我的生活中弄清楚如何一次一個項目地顯示這個多維數組中的項目,同時淡入和退出每個項目。 *注意我不希望這些追加,只顯示一組,然後淡出並淡入到下一組。這裏有一些信息給你的專業人士。jQuery的淡入的對象數組 - 項目一次一個

基本上我在這裏存放了什麼我在我指定的數據JSON對象到結果。這似乎通過每一次循環,就好像我把警報(結果['問題'])它會給我每個值一次,但是當試圖應用到我的div,其中我使用的span類稱爲.Active,它將循環遍歷整個事物並給我數組中的最後一項。 2 + 2 lol duh 1 2.我在這裏做錯了什麼?如果需要的話,我會盡量爲它設置一個jfiddle。

對象從PHP頁面來(稱爲數據)

[{"id":"238","question":"Which of these is a noun?","answer":"horse"},{"id":"238","question":"Which of these is a noun?","answer":"long"},{"id":"238","question":"Which of these is a noun?","answer":"pretty"},{"id":"238","question":"Which of these is a noun?","answer":"hair"},{"id":"238","question":"2+2 lol duh 1 2","answer":"4"}] 

代碼

for (var i = 0; i < data.length; i++) { 
    result = data[i]; 
    console.log(result['question']); 


    liText += '<span><h5>'+result["question"]+'</h5>'; 
    liText += '<p><b>Option:&nbsp;</b>'+result["answer"]; 

    liText += '</p></span>'; 


    $.each(result['question'], function(index) { 
     $(this).delay(400*index).fadeIn(300); 


    }); 
    $('.Active').text(result['question']); 

    } 
結果[問題]的

控制檯日誌*注意這些是正確的,5個不同的問題,第一個4是相同。

Which of these is a noun? 

index....mid=119 (line 227) 

Which of these is a noun? 

index....mid=119 (line 227) 

Which of these is a noun? 

index....mid=119 (line 227) 

Which of these is a noun? 

index....mid=119 (line 227) 

2+2 lol duh 1 2 

PS *一百萬尊重點,如果你能得到它與liText工作,我有以上,而不是:)

編輯*

當取出。每次和走動了一些東西這似乎工作,任何人都可以幫助我首先淡出淡出淡出每一個我會感激。位於$( '主動')

for (var i = 0; i < data.length; i++) { 
    result = data[i]; 
    alert(result['question']); 
    $('.Active').text(result['question']); 
+0

這不是一個多維數組,它是一個對象的陣列。 – 2013-02-08 20:29:33

+0

我的控制檯日誌不重複,這些是我使用的表內正確的項目,他們不重複。我只用了4次相同的問題,然後在第5次用了不同的問題。如果你看到我的控制檯日誌,它是正確的。項目之間不會褪色。我不認爲你的推薦是我的問題,但感謝閱讀反正。 – Meowpheus 2013-02-08 20:48:17

+0

什麼是你的意圖做'$。每個(結果[「問題」],函數(指數){'?由於'結果[「問題」]'是一個字符串,它並沒有太大的意義遍歷它。 – 2013-02-08 20:56:44

回答

0

試試這個:

for (var i = 0; i < data.length; i++) { 
    result = data[i]; 

    var $question = $("<span>").text(result['question']).hide() 
           .delay(400*i).fadeIn(300); 

    $('.Active').append($question); 
} 

我刪除了liText部分完全因爲你沒有做任何事的。

http://jsfiddle.net/Qf3FZ/

+0

嘿詹姆斯.delay(400 * I).fadeIn(300);?在Zend中拋出一個令牌錯誤是正確的格式 – Meowpheus 2013-02-08 21:08:52

+0

我在第一個版本一個額外的分號我幾乎立刻修好了但是你必須先複製代碼 – 2013-02-08 21:09:32

+0

啊,好吧,我應用了代碼,它讓每個項目都一個接一個地追加,但我看起來像爲每個項目取代以前的更多。即留在列表中的一個項目,而不是在最後有5個列表項目。我試着使用.html和。replaceWith與您的代碼,它或者只是第一個或只是最後一個項目,如果我使用這些。 – Meowpheus 2013-02-08 21:14:19

相關問題