我使用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