0

だから私はこの .fadeIn() コールバックを持つ画像の .load セットアップを持っています。これはうまく動作します。問題は、同じ画像で .load を 2 回続けて起動すると、コールバックに到達しないことです!

コードのスニペットを次に示します。

$('#thumbs a').click( function() {
  imageSrc = $(this).attr('href').substring(1)+'.jpg';   // grab src, remove hash, add jpeg extension
  $('#viewer img').fadeOut('fast', function() {     // fade old image out fast, wait until finished before changing src
   $('#viewer img').attr('src', (mediumPath+imageSrc));  // change src to new image
   $('#viewer a').attr('href', imageSrc);
  });
  $('#viewer img').load(function(){        // once image is loaded, fade the img back in
         $('#viewer img').fadeIn('slow');
        });
  return false;
 });

そして、あなたは私のウェブサイト(進行中)でそれを試すことができますここ. 左側のサムネイルを 2 回続けてクリックしても、loader.gif は消えません。つまり、.fadeIn() に到達しません。

:これは WebKit ブラウザー (?) のみに影響していると思います。

4

1 に答える 1

0

私はあなたのサイトhttp://www.benjibee.com/をChrome(私が知る限り、Webkitベースのブラウザ)でテストしましたが、問題を再現できませんでした。Firefoxよりも少し時間がかかりますが(しかし、それは私のコンピューターかもしれません)。

いくつかの提案/観察。

次の形式を使用して、.click()ベースのインタラクションを使用します。

.click( function( e ) {
  e.preventDefault();
  // Rest of your Javascript Code here...
} );

アンカー/リンクがそのように実行されるのを停止し、使用の終了を待つのではなく、jQuery処理の開始時に呼び出すことができますreturn false

また、javascript変数に現在の画像/リンクの詳細を保存し、サムネイルを続けてクリックしたときにそれを確認することもできます。表示されている場合img1.jpgは、その画像のサムがクリックされます。大きい画像はフェードアウトし、その後、変更なしで再びフェードインします。ほんの小さなこと。

于 2010-07-26T07:47:35.210 に答える