2014-01-30 29 views
1

既然我可以利用reddit的API的搜索功能,我希望用户输入他们自己的查询。我是JavaScript新手,我认为我的代码的问题在于,在用户输入查询之前,API搜索功能正在运行。用户输入了对reddit搜索的查询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)   

}); 
}); 

回答

1

事实上,我们发现您的getJSON查询页面加载时执行。那时用户还没有输入任何内容,所以执行得太早。

您需要添加一个事件侦听器来检测用户输入,然后对reddit API执行AJAX调用。

假设您的用户在文本区域输入他的关键字,您可以使用.change()

你可以在这里微调更多的信息:http://api.jquery.com/category/events/或这里http://www.w3schools.com/jquery/event_change.asp

例子,你的情况:http://jsfiddle.net/2ECG6/1/

+0

感谢快速反应;我正在查看您发送给我的页面上的示例,我仍然无法确定在哪里添加更改功能。我甚至都没有看到这个例子中的函数如何与选项列表中的“甜食”列表相关联,因为JS似乎并没有把它称为..我假设我将包含函数的change()infront (数据)运行reddit API,但是如何知道要查找变更的变量? – mickdeez

+1

@ user3253373我添加了一个W3school链接,它提供了更多信息和一个很好的使用示例! – Theox

+0

对不起我的可怕无能的JS,但是当你引用$(用户输入),你指的是我的searchquery()函数?考虑到这是从我的HTML输入框拉动查询变量的功能..然后我运行我的$ .getJSON嵌套在searchquery()函数内? – mickdeez