我正在使用reddit API。我的页面上有一个搜索框,我正在设置它,以便如果要输入任何内容,它将返回与他们键入的单词或短语相关的前10个新闻报道。
<script>
$(document).ready(function () {
//reddit API URL
//var URL = "http://www.reddit.com/r/subreddits/search.json?q=Xbox";
var SEARCH_URL = 'http://www.reddit.com/r/subreddits/search.json?jsonp=?';
var searchQueryText = $('#search').val(); //getSearchQueryText();
$.getJSON(SEARCH_URL, {
q: searchQueryText,
limit: 10
}).done(function (data) {
$.each(data.data.children, function (i, item) {
$("<p>").text(item.data.title).appendTo("#images");
});
}).fail(function (data) {
alert("Something went wrong");
});
}); //end ready
</script>
<div id="images">
<h1>Reddit Data:</h1>
<p>
<label>Search</label>
<input type = "text" id = "search" value = "" />
</p>
如果我将var SearchQueryText
更改为特定字,那么API工作正常。但是,因为我将其更改为$('#search').val();
它不再有效。我放了alert()
来测试值,弹出窗口是空白的。所以我认为问题是当我输入它时它没有检测到这个词。所以我写了一个简单的.mouseenter
函数,但仍然没有。有什么想法吗?
答案 0 :(得分:1)
尝试附加keyup
事件处理程序
当用户释放密钥时,这将触发。
$('#search').keyup(function() {
console.log(this.value)
}).change();
如果你想在准备好的文件上发射相同文件,那么你可以在声明后链接事件。
$(document).ready(function () {
$('#search').keyup(function () {
//reddit API URL
//var URL = "http://www.reddit.com/r/subreddits/search.json?q=Xbox";
var SEARCH_URL = 'http://www.reddit.com/r/subreddits/search.json?jsonp=?';
var searchQueryText = this.value; // or $(this).val(()
$.getJSON(SEARCH_URL, {
q: searchQueryText,
limit: 10
}).done(function (data) {
$.each(data.data.children, function (i, item) {
$("<p>").text(item.data.title).appendTo("#images");
});
}).fail(function (data) {
alert("Something went wrong");
});
}).keyup();
}); //end ready
答案 1 :(得分:0)
或者,您可以在用户按下回车键(即输入一些文本后)时触发事件,如下所示:
$(document).ready(function () {
$('#search').keypress(function(e) {
if(e.which == 13) {
// Enter key pressed
e.preventDefault();
var SEARCH_URL = 'http://www.reddit.com/r/subreddits/search.json?jsonp=?';
var searchQueryText = $('#search').val(); //getSearchQueryText();
console.log(searchQueryText);
$.getJSON(SEARCH_URL, {
q: searchQueryText,
limit: 10
}).done(function (data) {
$.each(data.data.children, function (i, item) {
$("<p>").text(item.data.title).appendTo("#images");
});
}).fail(function (data) {
alert("Something went wrong");
});
}
}); // End keypress handler
}); // End ready