2012-02-24 5 views
0

이 jQuery 코드는 간단한 축소판 갤러리의 일부입니다. 페이지의 링크를 클릭하면 fancybox에로드됩니다. 프리 로더 부분을 추가하면 모든 것이 정상적으로 보이지만 방화 광에서 오류가 발생합니다. $(imgSwap).preload은 기능이 아닙니다.jquery error "is not a function"

제가 누락 된 부분이 무엇인지, 아니면 아약스를 통해로드되고 있는지 확실하지 않습니다.

<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이 이미 준비되어 있으면 바로 호출 할 수 있습니다. 이 경우 분명히 그렇습니다.

안전을 위해 사용하기 전에 jQuery 메서드 (여기 $.fn.preload)를 정의하십시오.

+0

답장을 보내 주셔서 감사합니다. 나는 제안 된대로 움직이는 것을 시도했지만 나는 당신이 의미하는 것을 100 % 확실하지 않다. 이동 세부 사항을 제공 할 수 있습니까? 나는 $ (document) .ready 위의 코드가 ajax로로드되는 메인 페이지에있다. –

관련 문제