.appendTo在.bind(加载)中不起作用 - jQuery

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.appendTo在.bind(加载)中不起作用 - jQuery相关的知识,希望对你有一定的参考价值。

我有一个问题,当我在for循环和.bind(“加载”) - 处理程序时,使用.appendTo向div添加图像。我尝试了很多东西,但没有任何效果,它只显示最后的图片,而不是三张。代码非常简单,如下所示。

如果有人提示我,这将是伟大的。提前致谢!

var $images = ["https://static.pexels.com/photos/769986/pexels-photo-769986.jpeg", "https://static.pexels.com/photos/767907/pexels-photo-767907.jpeg", "https://static.pexels.com/photos/746759/pexels-photo-746759.png"];

var i,
  figure,
  img;

for (i = 0; i < $images.length; i += 1) {

  figure = $('<figure />');
  img = $('<img />');

  img.attr("src", $images[i]);

  img.unbind("load");
  img.bind("load", function() {

    a = $('<a>', {
      href: this.src,
      itemprop: "contentUrl",
      'data-size': this.width + "x" + this.height
    });

    img.appendTo(a);
    a.appendTo(figure);
    figure.appendTo('#gallery-panel');
  });
}
img {
  width: 10em;
  float: left;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>

<body>
  <div id="gallery-panel"></div>
</body>

</html>
答案

更改:

img.appendTo(a);

至:

$(this).appendTo(a);

你正在进入Javascript infamous Loop issue?,因为所有的闭包都使用相同的img变量。

以上是关于.appendTo在.bind(加载)中不起作用 - jQuery的主要内容,如果未能解决你的问题,请参考以下文章

Binding 中的 WPF StringFormat 在后面的代码中不起作用

javax.xml.bind 在 Android Studio(Gradle)中不起作用

b-list-group-item 中的 v-bind 在带有 bootstrap-vue 的 vue CLI-app 中不起作用

淘汰赛数据绑定在内循环中不起作用

为啥延迟加载在一对一关联中不起作用?

为啥 Jquery 加载在 Firefox 中不起作用?