您好我的第一个插件有问题: - )
我在for循环中设置了一些变量 问题是,当我尝试删除图像时,我最终尝试删除3次#img-3 比如,当变量已经改变值
时它会被执行for (i=1; i<=3; i++) {
var insertImg = arrImgs[i];
var deleteImg = '#img-' + i;
$('<img src="'+ insertImg +'">').hide().appendTo('#mydiv').load(function(){
$(this).show(0, function() {
deleteImg.remove();
});
});
}
答案 0 :(得分:0)
假设deleteImg.remove();
是一个拼写错误,并且您实际上打算发布$(deleteImg).remove()
,那么这里有一些问题。
您没有为要插入的图像元素添加ID。尝试使用:
$('<img src="'+ insertImg +'" id="' + i + '" />')
回调正在关闭deleteImg
变量,并且只会在调用它们时使用存储在其中的值。看到它们是响应事件(加载事件)而调用的,这将在循环完成后,此时deleteImg
的值为“#img-3”
此问题的一个解决方案是使用IIFE从deleteImg
传递值而不关闭变量。这看起来像是:
.load((function(d){
return function(){
$(this).show(0, function() {
d.remove();
});
}
})(deleteImg));