0

我正在尝试建立一个照片库,从 flickr 中提取照片并用文本框显示每张照片。我想要下面的代码,其中 div class='col-sm-6 col-md-4 center' 并且所有子关系在 div class="row" 中重复。

<div id="body" style="padding-top: 60px;">
 <div class="row">

  <!-- Section to repeat -->
  <div class='col-sm-6 col-md-4 center'>
   <div class='thumbnail'>
    <div id="gallery"></div> <!-- Photos go here -->
    <div class='input-group'>
     <!-- textbox and button -->
     <input type='text' class='form-control' placeholder='#tag'>
     <span class='input-group-btn'>
      <button class='btn btn-default' type='button'>Tag!</button>
     </span>
    </div>
   </div>
  </div>

  <!-- Above section repeats here 6 times -->

 </div><!--./row -->
</div><!--./body -->

我得到的 Javascript 是:

<script>
 (function() {
  var flickerAPI = "http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?";
  var tagForm = "<span class='input-group-btn'><button class='btn btn-default' type='button'>Tag!</button></span>";

  $.getJSON( flickerAPI, {
   tags: "porsche",
   tagmode: "any",
   format: "json"
  })
  .done(function( data ) {
   $.each( data.items, function( i, item ) {
    $( "<img>" ).attr( "src", item.media.m ).appendTo( "#gallery" );
    $( "#gallery" ).append( tagForm );
    if ( i == 5 ) {
     return false;
    }
   });
  });
 })();
</script>

这将拉出照片,但文本框和按钮将位于照片的右侧,而不是下方。我知道问题出在前 2 个 div 没有被包括在内,但是,我不知道如何在缩略图和 col-sm-6 dig 中嵌入照片和文本框/按钮。

任何帮助都会很棒!提前谢谢。

4

1 回答 1

0

如果您希望每张图片都使用自己的标签按钮进入#gallery,那么如果您将图片分组并在一个元素内跨越,那么样式设置会容易得多。

示例输出:

<div class="gallery">
    <div class="img-box">
        <img src="something.jpg">
        <span class='input-group-btn'><button class='btn btn-default' type='button'>Tag!</button></span>
    </div>
</div>

<script>
 (function() {

  var flickerAPI = "http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?";
  var tagForm = "<span class='input-group-btn'><button class='btn btn-default' type='button'>Tag!</button></span>";
  // store this so we dont look it up every iteration
  var $gallery = $("#gallery");

  $.getJSON( flickerAPI, {
   tags: "porsche",
   tagmode: "any",
   format: "json"
  })
  .success(function( data ) {
   $.each( data.items, function( i, item ) {
        // create a div to stuff img and tag in
        var $img_box = $('<div class="img-box">');    
        $( "<img>" ).attr( "src", item.media.m ).appendTo( $img_box );
        $img_box.append( tagForm ).appendTo($gallery)
    if ( i == 5 ) {
     return false;
    }
   });
  });
 })();
</script>
于 2013-11-12T21:13:14.370 回答