2

私は長い間スタックオーバーフローに潜んでいて、ほとんどの場合、ボード上で私の問題に対する答えを見つけてきました (ありがとう) が、これは私を困惑させています ...

私はポートフォリオサイトを構築しています..jQueryを使用して、MySQLデータベースからプルされた要素(画像)を配置します..かなり簡単です...しかし、何らかの理由で、画像が常にロードされるとは限らないか、いくつかロードされます.永久に電話を切り、何もしないでください...

ページはこちら ... http://www.spacecar.org/2013/

すべての作業を行う JS ファイルはここにあり ます http://www.spacecar.org/scripts/jquery.menu.js

私が見ていない本当に基本的なものはありますか?どんな洞察も非常に高く評価されます...私はサイトの効果機能を制定するために多くの呼び出しを行っていることを知っていますが...うーん!

ありがとう

4

1 に答える 1

0

$( 'img' ).load( function(){ ... });– 信頼できるものではありません (プラグインにこのコードが表示されます)。ここで理由がわかります: http://api.jquery.com/load-event/caveats (言葉から読み始めてください)

問題を説明するための小さな例を次に示します。

$( document ).ready( function(){
    $( 'img' ).load( function(){
       // this event going to fire only if document was ready after image was loaded; (very seldom, almost never)
       console.log( 'Fired?! You are lucky today!' );
    });

    $( document.body ).append( '<img src="http://stat19.privet.ru/lr/0b164d8151948d2fdedfbfdc420f5392?temp=2" id="some"/>' );
    $( '#some' ).load( function(){
        // this event will fire often, except of cases descripted in `load` event manual
        console.log( 'Huugh. Today have fired. But I don\'t know about tomorrow' );  
    });

  var temp = new Image;
  temp.src = 'http://photo.a42.ru/photos/92772/medium/11757.jpg';
  temp.onload = function(){
      // this event going to fire almost always except of cache issue with IE, that can be handled by skipping cache with `?nothing=random` appending to image URL
    console.log( 'Okay, okay! I\'ve fired' );
  }
  $( document.body ).append( temp );
});

ここで実行できます: http://jsfiddle.net/p6Cpy/

于 2013-04-29T23:36:55.730 に答える