2009-11-06 90 views
0

我試圖創建一個淡入淡出效果與以下...我被告知即時消息幾乎那裏除了傳遞的JSON數組。此刻沒有圖像顯示。如何正確傳遞JSON數組?

//generate all the boxes 
$.get('images.php',function(data){ 
    for (var i=0; i < totalBoxes; i++){ 
     var randomImage = data[Math.floor(Math.random() * data.length)]; 
     $('<div class="pf-box"><img class="black" src="' + randomImage['black'] + '" /><img class="colour" src="' + randomImage['colour'] + '" /></div>').hide().appendTo('#bg').fadeIn('slow').filter('.colour').css("opacity", 0); 
    } 
},'json'); 

//add the hover behavior to all the elements 
$('.colour').hover(function() { 
    $(this).stop().fadeTo(700, 1); 
},function() { 
    $(this).stop().fadeTo(700, 0); 
}); 

和images.php

<?php 
    header('Content-type: application/json'); 
echo '[ 
    {'black' : 'images/random/1.jpg', 'colour' : 'images/random/1-c.jpg'}, 
    {'black' : 'images/random/2.jpg', 'colour' : 'images/random/2-c.jpg'} 
]'; 
    ?> 

回答

0

使用randomImage.black代替randomImage [「黑」]

+0

有在JavaScript – 2009-11-06 01:00:52

+0

兩者之間沒有差異存在於JavaScript的關聯數組沒有官方的支持..給那些點回 – 2009-11-06 01:02:26

+0

我不知道我已經刪除對不起 – Andy 2009-11-06 01:03:43

2

你不需要逃避JSON字符串內的報價?否則,PHP解釋器將無法發送所有你想要的東西,甚至可能會漏掉一些錯誤。

+0

我想創建這樣的效果: http://www.yellostudio.co.uk/temp/index.php 上面的代碼上 http://www.yellostudio.co.uk/temp /indexV2.php 你知道我要去哪裏嗎? – Andy 2009-11-06 01:00:16

0

您的迴音是因爲JSON輸出爆發回聲的單引號的失敗。

附上不同的報價你的繩子,讓你能夠正確迴應:

<?php 
header('Content-type: application/json'); 
echo "[ 
    {'black' : 'images/random/1.jpg', 'colour' : 'images/random/1-c.jpg'}, 
    {'black' : 'images/random/2.jpg', 'colour' : 'images/random/2-c.jpg'} 
]"; 
?> 

注意使用雙引號括而不是你使用單引號回聲字符串。 (如果你在字符串中有雙引號,那麼你可以將其翻轉並在外部使用單引號)。