【问题标题】:Jquery.html in each json load not working每个 json 加载中的 Jquery.html 不起作用
【发布时间】:2017-02-02 03:43:37
【问题描述】:

我使用这个 tut:https://www.ostraining.com/images/coding/jquery-flip/demo/ 这是完美的工作。这段代码运行良好,它显示了 2 张有影响的图像

<div id="flip">
<div id="flip-this" class="flip-horizontal" style="perspective: 600px; position: relative; transform-style: preserve-3d;">
    <div class="front" style="height: 100%; width: 100%; backface-visibility: hidden; transform-style: preserve-3d; position: absolute; z-index: 1; transition: all 0.5s ease-out; transform: rotateY(0deg);">
        <img src="img/source/5.jpg" alt="" style="backface-visibility: hidden;">
    </div>
    <div class="back" style="transform: rotateY(-180deg); height: 100%; width: 100%; backface-visibility: hidden; transform-style: preserve-3d; position: absolute; z-index: 0; transition: all 0.5s ease-out;">
        <img src="img/source/5.jpg" alt="" style="backface-visibility: hidden;">
    </div>
</div>
<div id="flip-this" class="flip-horizontal" style="perspective: 600px; position: relative; transform-style: preserve-3d;">
    <div class="front" style="height: 100%; width: 100%; backface-visibility: hidden; transform-style: preserve-3d; position: absolute; z-index: 1; transition: all 0.5s ease-out; transform: rotateY(0deg);">
        <img src="img/source/5.jpg" alt="" style="backface-visibility: hidden;">
    </div>
    <div class="back" style="transform: rotateY(-180deg); height: 100%; width: 100%; backface-visibility: hidden; transform-style: preserve-3d; position: absolute; z-index: 0; transition: all 0.5s ease-out;">
        <img src="img/source/5.jpg" alt="" style="backface-visibility: hidden;">
    </div>
</div>  
</div>

因为我是通过 json 加载数据,所以,我想在循环 json 加载中加载这个效果,我希望它在数据中显示 10 个图像,我的代码:

<div id="flip">

</div>
<script>
$(document).ready(function(){
var url="http://localhost/service/load_data.php";
//load 10 image
$.getJSON(url,function(result){
$.each(result, function(i, field){
  var id=field.id;
  var img=field.img;
  $('#flip').append('<div id="flip-this" class="flip-horizontal" style="perspective: 600px; position: relative; transform-style: preserve-3d;"><div class="front" style="height: 100%; width: 100%; backface-visibility: hidden; transform-style: preserve-3d; position: absolute; z-index: 1; transition: all 0.5s ease-out; transform: rotateY(0deg);"> <img src="img/source/'+img+'" alt="" style="backface-visibility: hidden;"> </div> <div class="back" style="transform: rotateY(-180deg); height: 100%; width: 100%; backface-visibility: hidden; transform-style: preserve-3d; position: absolute; z-index: 0; transition: all 0.5s ease-out;"> <img src="img/source/'+img+'" alt="" style="backface-visibility: hidden;"> </div></div> ');
});
});
});
</script>

它不显示图像,但不起作用。我认为效果在加载 json 之前运行,所以它不起作用。请帮我。谢谢!

【问题讨论】:

    标签: javascript jquery html css json


    【解决方案1】:

    您没有初始化插入 html 后需要执行的插件

    有点像

    $.getJSON(url, function(result) {
      var $flip = $('#flip')
      $.each(result, function(i, field) {
        var id = field.id;
        var img = field.img;
        $flip.append('<div id="flip....../div> ');
      });
      $flip.flip({ /* plugin options here */ })
    });
    

    我对这个特定的插件一无所知。

    它还可能允许您将图像添加到现有实例。如果是这样,将在文档中进行概述

    【讨论】:

    • 是的,它可以工作,但点击时会影响工作,而不是悬停。也许我试试
    • 你需要阅读插件文档并按照你想要的方式设置适当的选项
    • 是的,它尝试第二次,它的工作,只需调用翻转功能。非常感谢。
    【解决方案2】:
            <div id="flip-this" class="flip-horizontal" style="perspective: 600px; position: relative; transform-style: preserve-3d;">
        </div> 
        <script>
        $(document).ready(function(){
        var url="http://localhost/service/load_data.php";
        //load 10 image
        $.getJSON(url,function(result){
        $.each(result, function(i, field){
          var id=field.id;
          var img=field.img;
          $('#flip-this').append('<div class="front" style="height: 100%; width: 100%; backface-visibility: hidden; transform-style: preserve-3d; position: absolute; z-index: 1; transition: all 0.5s ease-out; transform: rotateY(0deg);"> <img src="img/source/'+img+'" alt="" style="backface-visibility: hidden;"> </div> <div class="back" style="transform: rotateY(-180deg); height: 100%; width: 100%; backface-visibility: hidden; transform-style: preserve-3d; position: absolute; z-index: 0; transition: all 0.5s ease-out;"> <img src="img/source/'+img+'" alt="" style="backface-visibility: hidden;"> </div>');
            $("#flip-this").flip({
                trigger: 'hover'
            });
        });
        });
    
        });
        </script>
    

    试试这个,这可能是因为所有的函数绑定都在已经加载的元素上 如果要动态加载元素,还需要将函数绑定到新加载的元素。

    【讨论】:

      猜你喜欢
      • 2012-06-17
      • 1970-01-01
      • 2016-01-16
      • 1970-01-01
      • 2011-12-23
      • 1970-01-01
      • 2013-07-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多