代码之家  ›  专栏  ›  技术社区  ›  Sam

使用Ajax动态插入owl转盘的图像

  •  0
  • Sam  · 技术社区  · 7 年前

    我正在尝试使用Ajax从json文件插入图像。这些图像将由owl转盘使用,但目前它只显示json文件中的最后一个图像。

    这是我的代码:

    html

         <div class="content newFilms">
            <h2 class="welcomeText">New Releases</h2>
            <div class="owl-carousel owl-theme"></div>
        </div>
    

    js公司

    $(document).ready(function() {
    
        $.getJSON("data/owl.json",function(img){
           $.each(img, function(index,img){
                var $newImg = $(img.item);
    
            $(".owl-carousel").append($newImg);
    
           });
      $(".owl-carousel").owlCarousel({
          dots:true
      });
    
    });
    });
    

    json

    [
    {
        "item":"<img src='images/slide1.jpg'/>",
        "item":"<img src='images/slide2.jpg'/>",
        "item":"<img src='images/slide3.jpg'/>"
    }
    ]
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Tomalak    7 年前

    同一对象中不能有多个相同的关键点。

    我建议使用不同的数据结构。具有 images 属性,它是一个对象数组,每个对象都携带有关单个图像的信息。

    {
        "images": [
            {"url": "images/slide1.jpg"},
            {"url": "images/slide2.jpg"},
            {"url": "images/slide3.jpg"}
        ]
    }
    

    然后,代码自然会出现:

    $(document).ready(function() {
        $.getJSON("data/owl.json").done(function (data) {
            $.each(data.images, function(index, img) {
                $('<img>', { src: img.url }).appendTo(".owl-carousel");
            });
    
            $(".owl-carousel").owlCarousel({
                dots:true
            });
        });
    });
    

    请注意,将完成的HTML放在JSON中不是一个好主意,因为这限制了您在客户端可以使用它,并导致JSON数据中的无用复制。

    jQuery使从数据构建HTML元素变得非常容易,可以利用该特性并且只包含实际的 数据 在JSON中。客户端代码可以处理如何呈现它的细节。