我使用jQuery和PHP構建了一個very simple Twitter Instant Search以獲得樂趣。我將一個事件綁定到搜索表單上的關鍵字,並對捲起Twitter搜索JSON的PHP頁面進行快速AJAX調用。jQuery keyUp/AJAX獲取組合後始終1或2個衝程
<script>
$(function(){
$('#search').bind('keyup', function(){
var v = $('#search').val();
console.log(v);
$.get('get.php',{q: v, a:''}, function(data){
obj = {};
window.tw = '';
obj = eval('('+ data +')');
if(typeof obj.results.length !== undefined){
for (var i=0; i < obj.results.length; i++) {
tw += '<div class="tweet"><h2><a target="_blank" href="http://twitter.com/'+obj.results[i].from_user+'">@' + obj.results[i].from_user + '</a></h2> <span>' + obj.results[i].text + '</span><' + '/div>';
};
}
});
$('#container').html(window.tw);
});
});
</script>
即使返回的console.log值是正確的,就顯示的結果而言,它仍然落後於1-2個字符。爲什麼?我怎樣才能解決這個問題?
對於JSON方面回調裏面,你可以使用函數'$ .getJSON'代替,並且返回值將是一個JSON對象默認。此外,對於任何地方的解析,您可以使用'$ .parseJSON'函數而不是使用'eval',而不需要添加圓括號。 – 2010-10-16 01:54:58
@Zurahn是的,你完全正確;但我在出租車上寫了這個,所以沒有訪問jQuery文檔:) – Yahel 2010-10-16 14:15:07