javascript - 加载另一个具有相同功能的图像会卸载另一个图像

标签 javascript jquery image function

$(document).ready(function() {
    function loadSlide(url, zIndex, initLeft){
        slide = $("<img />").attr("src", url).on("load", function() {
            if (!this.complete || typeof this.naturalWidth == "undefined" || this.naturalWidth == 0) {
                console.log("broken image!");
            } else {
                $("#my_slider").append(slide);
                slide.css({
                    "z-index": zIndex, 
                    "left": initLeft
                });
            }
        });    
    }

    loadSlide("img/man_slide1.png", 100, "0vw");
    loadSlide("img/man_slide2.png", 99, "0vw");
});

我无法解决这个问题。如您所见,我希望多次调用同一个函数来加载多个图像。但只有最后一个加载到我的浏览器中(并在 Inspector 中检查)。

我做错了什么?

最佳答案

我想通了:

slide = $("<img />").attr("src", url).on("load", function() {

需要不是全局变量,而是函数作用域的局部变量,如下所示:

var slide = $("<img />").attr("src", url).on("load", function() {

编辑,为清楚起见,我也将函数放入变量中:

$( document ).ready(function() { 
        $.loadImage = function loadSlide(url, zIndex, initLeft, className){
        var slide = $("<img />").attr("src", url)
        .on("load", function() {
            if (!this.complete || typeof this.naturalWidth == "undefined" || this.naturalWidth == 0) {
                console.log("broken image!");
            } else {
                $("#my_slider").append(slide);
                slide.css({"z-index": zIndex, "left": initLeft}).addClass(className);
            }
        });    
    }
    $.loadImage("img/man_slide1.png", 100, "-100vw", "slide1_1");
    $.loadImage("img/man_slide2.png", 99, "-100vw", "slide2_1");
    $.loadImage("img/man_slide3.png", 98, "-100vw", "slide3_1");
    $.loadImage("img/man_slide4.png", 97, "100vw", "slide4_1");  
});

关于javascript - 加载另一个具有相同功能的图像会卸载另一个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39972005/

相关文章:

javascript - 仅用于粗体斜体和列表的所见即所得编辑器

JavaScript 名称与 ID

javascript - React 嵌套路由

jquery - 为什么 jQuery ajax 在这里发帖两次?

jquery - 小数限制 jQuery

c - 在 Ubuntu 中使用 C 从网络摄像头拍摄图像

javascript - 如何使用 javascript 库将 Socket.io 与 emscripten 一起使用?

jquery - Bootstrap 4 列,2 隐藏

java - 在java中创建自定义图像格式

android:如何将平面图作为带图钉的图像?