2012-02-24 22 views
0

このjQueryコードは、簡単なサムネイルギャラリーの一部です。ページ上のリンクをクリックすると、fancyboxに読み込まれます。プリローダー部分を追加すると、すべてが正常に見えますが、ファイヤーバグでエラーが発生します。$(imgSwap).preloadは機能ではありません。jqueryエラーは "関数ではありません"

私は何が不足しているのか、それともajaxを通じてファンシーに読み込まれているのか分かりません。

<script type="text/javascript"> 
$(document).ready(function() { 
    // Image swap on hover 
    $("#gallery li img").hover(function(){ 
     $('#main-img').attr('src',$(this).attr('src')); 
    }); 
    // Image preload 
    var imgSwap = []; 
    $("#gallery li img").each(function(){ 
     imgUrl = this.src; 
     imgSwap.push(imgUrl); 
    }); 
    $(imgSwap).preload(); 
}); 
$.fn.preload = function() { 
    this.each(function(){ 
     $('<img/>')[0].src = this; 
    }); 
} 
</script> 


    <div id="gallery"> 
     <img src="http://photos2.img.ie/Full-10176257.jpeg" alt="" id="main-img" width="290px" height="200px"/> 
     <ul> 
      <li><img src="http://photos2.img.ie/Full-10176257.jpeg" alt="" width="69px" height="52" /></li> 
      <li><img src="http://photos2.img.ie/Full-10176258.jpeg" alt="" width="69px" height="52" /></li> 
      <li><img src="http://photos2.img.ie/Full-10176259.jpeg" alt="" width="69px" height="52" /></li> 
      <li><img src="http://photos2.img.ie/Full-10176260.jpeg" alt="" width="69px" height="52" /></li> 
      <li><img src="http://photos2.img.ie/Full-10176262.jpeg" alt="" width="69px" height="52" /></li> 
      <li><img src="http://photos2.img.ie/Full-10176256.jpeg" alt="" width="69px" height="52" /></li> 
     </ul> 
    </div>  
+2

あなたは 'preload()'メソッド*を宣言してみてください。 – Crontab

+0

任意の文字列の配列からjQueryオブジェクトを作成することはできません。少なくとも、そうしないでください。 –

+0

こんにちはフェリックス私はまだベストプラクティスを持っていないので、私はまだ学んでいます。私はあなたが私のやり方に向けることができますか?正確にはどのような行、彼らはすべての配列ですので、私は何か重要なものを見逃しています。ありがとう。 –

答えて

1

宣言の前にpreload関数を呼び出している可能性があります。コードの先頭でその関数を宣言してから、preload関数を呼び出してみてください。

+0

ありがとう、それはトリックをした –

2

$(document).ready DOMの準備ができたらコールバックを呼び出します。あるいは、DOMがすでに準備が整っている場合は、DOMを直ちに呼び出します。この場合、これは明らかです。

安全のため、使用する前にjQueryメソッド(ここでは$.fn.preload)を定義してください。

+0

お返事ありがとうございます。私は提案したように物事を移動しようとしたが、私はあなたが何を意味するか100%ではない。移動の詳細を提供できますか?私は上記のコードがajaxでロードされるメインページに$(document).readyを持っています。 –

関連する問題