2017-03-14 8 views
1

Reqire.JS를 처음 사용하고 있으며, Google CDN jQuery에서 fancybox를 사용할 수 없습니다.CDN jQuery 및 팬시 박스에서 012 필요합니다.

내 파일 구조는 다음과 같습니다

index.html/ 
├── js/ 
│ ├── app.js 
│ ├── app/ 
│ | ├── main.js 
│ ├── lib/ 
│ | ├── require.js 
│ | ├── jquery.fancybox.js 
│ | ├── jquery.fancybox-thumbs.js 
│ | ├── jquery.fancybox-media.js 
│ | ├── jquery.mousewheel-3.0.6.pack.js 

requirejs.config({ 
    "baseUrl": "js/lib", 
    "paths": { 
     "app": "../app", 
     "jquery": "//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min", 
     "jquery.fancybox": "jquery.fancybox", 
     "jquery.fancybox-thumbs": "jquery.fancybox-thumbs", 
     "jquery.fancybox-media": "jquery.fancybox-media", 
     "jquery.mousewheel-3.0.6.pack": "jquery.mousewheel-3.0.6.pack" 
    } 
}); 

requirejs(["app/main"]); 

main.js를 app.js

define(["jquery", "jquery.fancybox-media", "jquery.fancybox-thumbs", "jquery.fancybox", "jquery.mousewheel-3.0.6.pack"], function ($) { 
    $(function() { 
     $('.fancybox').fancybox(); 
    }); 
}); 

HTML

<head> 
     <script data-main="js/app" src="js/lib/require.js"></script> 
    </head> 
    <body> 
     <a class="fancybox" href="myImage.jpg" data-fancybox-group="gallery" title=""> 
      <h5>Click</h5> 
     </a> 
    </body> 

아직 정의되지 않은 jQuery 오류가 발생합니다. 내 fancybox 라이브러리와 jQuery를 DOM에서 볼 수 있지만 아무 일도 일어나지 않습니다.

+0

나는 이렇게 생각해야한다 :'jquery : "//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min",'. 문서에서'jquery'에'''괄호를 제거하십시오 : http://requirejs.org/docs/jquery.html – vanloc

+0

@vanloc 확실합니까? 그것을 시도하고 작동하지 않습니다. 둘 다 상황 (btw 또는 괄호없이), 나는 DOM에서 jquery를 볼 수 있습니다. 문서화에서 괄호는 없지만 예제에서는 대괄호로 처리했다는 것을 보여줍니다. – Cromwell

+0

코드가 올바르게 표시됩니다. 문서에서 "" "'이 (가) 필요하지 않음을 발견했습니다. 그래서 나는 그것을 제거해야한다고 생각합니다. – vanloc

답변

1

here과 같이 fancybox 파일을 shim해야 할 수도 있습니다.

뭔가 같은 :

requirejs.config({ 
    baseUrl: 'Scripts', 
    paths: { 
     "app": "../App", 
     "jquery": 'jquery-3.1.1' //Or use cdn 
    }, 
    shim: { 
     "jquery.fancybox": ["jquery"] 
    } 
}); 

requirejs(["app/index"]); 

당신이 점점 오류가 (그대로 작은) 하나가 제되지는 못할되는 fancybox를 수신, 아마도 때문에 비동기 모두 jQuery를하고 fancybox 파일을로드 할 필요합니다 jQuery 파일이 아직로드되지 않았으므로 오류를 사용하므로이를 사용하십시오.