.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 中不起作用