0

小さすぎる画像を削除するための次のスクリプトがありますが、正しく機能しません。最初にページをロードすると、すべての画像が に置き換えられno-image.pngます。ページを更新した後、正しく機能します。何が欠けていますか?

$(document).ready(function () {
    $('.story-img').error(function () {
        $(this).attr("src", "/Images/no-image.png");
        $(this).css('border', 'none');
    });

    $(".story-img").each(function () {

        var theImage = new Image();
        theImage.src = $(this).attr("src") || $(this).src;

        var imageWidth = theImage.width;
        var imageHeight = theImage.height;

        if (imageWidth < 32 || imageHeight < 32 || $(this).height() < 32 || $(this).width < 32) {
            $(this).attr("src", "/Images/no-image.png");
            $(this).css('border', 'none');
        }

    });
});
4

2 に答える 2

1

おそらく、画像が読み込まれる前に画像をチェックしているでしょう (これにより、幅と高さが 0 になります)。使用できます$(image).load()

$(".story-img").load(function () {

    //...

});
于 2012-08-22T08:34:57.267 に答える
0

ページの html の読み込みが完了する前に画像データの読み込みが完了していない可能性があります。すべての画像の読み込みが完了するまで待機する JavaScript LOAD イベントを使用できます。使用する

$(window).load(function(){}
于 2012-08-22T07:41:28.410 に答える