捕获用户输入并用作 Flickr API 的搜索,需要让按钮点击正常工作

Trapping user input and using as search of Flickr API, need to get button click working

我试图让用户输入搜索词,然后使用该词作为标签来搜索 Flickr 的 API。我设法让基本搜索正常工作,但在添加按钮点击事件之间出现了问题。有人可以纠正我吗?我觉得这是我没有看到的小东西,我对 and 很陌生。

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" />
  <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
  <script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
  <script>
    $("button").click(function() {
      var searchTerm = $("input:text").val();
      var flickrApi = "https://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?";
      $.getJSON(flickrApi, {
          tags: "searchTerm",
          tagmode: "any",
          format: "json"
        })
        .done(function(data) {
          $.each(data.items, function(i, item) {
            $("<img>").attr("src", item.media.m).appendTo("#images");
            if (i === 3) {
              return false;
            }
          });
        });
    })
  </script>
</head>

<body>
  <input type="text" id="search">
  <button type="submit">Search</button>
  <div id="images"></div>
</body>

</html>

尝试删除变量中的双引号 "searchTerm" 更改:

$.getJSON( flickrApi, {
    tags: "searchTerm",
    tagmode: "any",
    format: "json"
})

$.getJSON( flickrApi, {
    tags: searchTerm, // Local variable.
    tagmode: "any",
    format: "json"
})

顺便说一句,您需要将代码放在 jQuery 函数中。当 DOM 准备好通过 jQuery/Javascript 代码与 HTML 标签交互时,jQuery 功能将成功 运行。

$(document).ready(function()
{
    // jQuery/Javascript code goes here...
});

或 shorthand 为 $(document).ready():

$(function()
{
   // jQuery/Javascript code goes here...
});

Demo