现在,我可以将搜索功能用于reddit的API,我希望用户输入自己的查询。我是javascript的新手,我认为代码的问题是在用户甚至输入查询之前就已经运行了API搜索功能。
HTML:
<div id="site-content">
<form name="RedditSearch">
Enter your query:
<input type="text" name="query" onkeydown="if (event.keyCode == 13) document.getElementById('search').click()"/>
<input type="button" id="search" value="Search" onclick="searchquery();" />
</form>
</div>
Javascript:
var container = $('#site-content')
function searchquery()
{
var query = document.RedditSearch.query.value;
}
$.getJSON("http://www.reddit.com/search.json?q=" + query, function(data) {
$.each(data.data.children, function(i,item){
var title = item.data.title
var post = '<div>'+title+'</div>'
container.append(post)
});
});
最佳答案
确实,页面加载时似乎执行了getJSON查询。那时,用户还没有输入任何东西,所以执行得太早了。
您需要添加一个事件侦听器,该侦听器将检测用户输入,然后对reddit API执行AJAX调用。
假设用户在文本区域中输入关键字,则可以使用.change()
。
您可以在此处http://api.jquery.com/category/events/或在http://www.w3schools.com/jquery/event_change.asp处获取更多信息。
您的示例:http://jsfiddle.net/2ECG6/1/