0

私はこのようなデザインを持っています:

<img class="imgtest" src="img.png" onload="scaleimg(event)" />

ここで、ウィンドウのサイズが変更されたときscaleimg(event)に画像にクラスがあるため、関数を再度呼び出したいと思います。.imgtest

試してみましたが、うまくいきません。

$(window).resize(function() {
     $("img").one('load', function(){
         scaleimg(event);
     });
    });

それを修正するために私を助けてください。ご協力いただきありがとうございます。

4

2 に答える 2

2

インライン JavaScript の使用は避ける必要があります。質問についてはscaleimg()、DOM の準備が整ったときに 1 回実行し、ウィンドウでサイズ変更イベントがトリガーされたときにもう一度実行できます。

$(document).ready(function() {
    // When DOM is ready, go through each <img> with the class '.imgtest'
    $('img.imgtest').each(function() {
        scaleimg(event);
    });

    // Listen to resize event on $(window)
    $(window).resize(function() {
        $('img.imgtest').each(function() {
            scaleimg(event);
        });        
    });
});

さらに良いことに、.resize()連鎖することで DOM の準備ができたら を再度起動できるので、数行のコードを節約できます。

$(document).ready(function() {
    // Listen to resize event on $(window)
    $(window).resize(function() {
        $('img.imgtest').each(function() {
            scaleimg(event);
        });        
    }).resize();  // Notice the chaining
});
于 2013-10-09T19:45:41.877 に答える