0

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>

varSearchQueryTextを特定の単語に変更すると、API は正常に動作します。ただし、に変更したため、$('#search').val();機能しなくなりました。値をテストするために入れましたalert()が、ポップアップは空白です。したがって、問題は、入力したときに単語が検出されないことだと思います。だから私は単純な.mouseenter関数を書きましたが、まだ何もありません。何か案は?

4

2 に答える 2

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
于 2013-07-16T00:02:53.720 に答える