0

jQueryload()を使用して、置き換えている画像srcがロードされているかどうかを確認しています。ただし、時々、動かなくなったりハングしたりするように見えます。以下に jsFiddle のリンクがあります。読み込み中のグラフィックがページ上でスタックするようにするには、ボタンの 1 つを 2 回クリックします。

http://jsfiddle.net/dmcgrew/LLMs8/3/

これは、私が現在構築しているサイトの問題を「ほぼ」再現していますが、問題は関連していると思います。私が構築しているサイトでは、次の手順を実行した場合にのみ、この「ハング」が発生します。

  1. 画像3ボタンをクリック
  2. 非表示ボタンをクリック
  3. 画像 3 ボタンをもう一度クリックします
  4. 読み込み中のグラフィックがページにスタックするようになりました。

これが私のJSです...

$("button").not("off").bind("click", function(){

    var imgPath = $(this).attr("data-image"); //grab image path from data attr
    console.log(imgPath);

    $(".loading").show(); //show loading gif
    $("img.the_image").hide(); //hide the img

    $("img.the_image").attr("src","http://farm7.staticflickr.com/"+imgPath).load(function() { 
        $(".loading").hide(); //hide loading gif
        $("img.the_image").show(); //show the newly loaded img
    });

});

$("button.off").bind("click", function(){
    $("img").hide();
});

load()画像が読み込まれたかどうかを確認する最良の方法は? 画像を置き換えて、ロードされているかどうかを確認するより良い方法はありますか (おそらく AJAX?)。

4

2 に答える 2

0

この問題は、src が実際には変更されないため、同じイメージを 2 回 load() しようとしたことに関連しているようです。問題が発生していると思います。

これに対処する最も簡単な方法は、現在の src が選択されている src と一致するかどうかを確認することです。

if($('img.the_image').attr('src') != 'http://farm7.staticflickr.com/' + imgPath) { }

http://jsfiddle.net/LLMs8/7/

于 2013-09-24T13:33:16.593 に答える