无法从.resize()内调用jQuery函数

时间:2014-11-21 20:26:03

标签: javascript jquery

这是我的代码:

function centerAlign(image, parent) {
    image.load(function() {
        var imageWidth = image.width();
        var parentWidth = parent.width();
        if(imageWidth != 0) {
            var trim = (parentWidth - imageWidth) / 2;
            image.css("marginLeft", trim);
        }
    });
}

$(window).resize(function() {
    centerAlign($(".swiper-slide img"), $(".swiper-slide"));
});

$(document).ready(function() {
    centerAlign($(".swiper-slide img"), $(".swiper-slide"));
});

它在页面加载时运行该函数,但不在窗口大小调整上运行。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

找到解决方案,我在resize中调用load。猜测它已经加载了它不会运行调整大小。改为:

function centerAlign(image, parent) {
    var imageWidth = image.width();
    var parentWidth = parent.width();
    if(imageWidth != 0) {
        var trim = (parentWidth - imageWidth) / 2;
        image.css("marginLeft", trim);
    }
}

$(window).resize(function() {
    centerAlign($(".swiper-slide img"), $(".swiper-slide"));
});

$(document).ready(function() {
    $(".swiper-slide img").load(function() {
        centerAlign($(".swiper-slide img"), $(".swiper-slide"));
    });
});

现在我只在ready()内调用load而不在resize()内调用load。希望这有助于其他任何人。