2017-07-06 10 views
0

2つの画像を表示するオーバーレイを作成しようとしています。画像srcは次のようになりますJSONファイルに格納されています。私はボタンをクリックしたときにjsonから静的なsrcを取得します。未定義です

{ 
    "items": [{ 
     "title": "Multimilionario", 
     "front": "http://placehold.it/810x2028?text=front", 
     "back": "http://placehold.it/810x2028?text=back" 
    }] 
} 

、オーバーレイが開くと、2 <img>秒にSRCを追加することになっています。しかし私が得るのはsrc(undefined)です。

$(".js-overlay-start").unbind("click").bind("click", function(e) { 
    e.preventDefault(); 

    $.ajax({ 
     url: 'json/overlay.json', 
     type: 'get', 
     dataType: 'json', 
     success: function(data) { 
      var item = data.items; 
      console.log(item); 

      $('.json-front').attr("src", ""); 
      $('.json-back').attr("src", ""); 
      $('.json-front').attr("src", item.front); 
      $('.json-back').attr("src", item.back); 
     } //success 
    });//ajax 
}); 

は、私は別の非常にシンプルなものを構築するために、この非常に構造を使用しました:私のjqueryのクリック機能は、(私は/開閉するオーバーレイのためのすべてのロジックをオフに残してきた)、このようになります

プロジェクトとそれは正常に働いた。私は何が起こっているのか分からない。

オーバーレイが隠されているためですか?任意のヒントやヘルプは非常に高く評価されています:)

+3

'items'は配列です。 'var item = data.items [0]'を使うか、 'for'ループを追加してください。 – Blazemonger

+0

感謝しました!あなたが質問に答えるなら、私はあなたのことを受け入れるでしょう – valerio0999

答えて

0

あなたは単一のオブジェクトのようにdata.itemsを使用しています、それは配列です。

$(".js-overlay-start").unbind("click").bind("click", function(e) { 
    e.preventDefault(); 

    $.ajax({ 
     url: 'json/overlay.json', 
     type: 'get', 
     dataType: 'json', 
     success: function(data) { 
      var item = data.items[0]; 
      console.log(item); 

      $('.json-front').attr("src", ""); 
      $('.json-back').attr("src", ""); 
      $('.json-front').attr("src", item.front); 
      $('.json-back').attr("src", item.back); 
     } //success 
    });//ajax 
}); 
関連する問題