2011-04-30 14 views
0

저는 일회 편집을 위해 레일 애플리케이션을 구축하고이 장소에 "최고의 위치"라는이 보석을 설치하려고합니다. 그것은 잠시 동안 일하고 있었지만 jQuery와 프로토 타입 충돌로 고생하고 나면 작동이 멈추었습니다. 이제 페이지를로드하려고 할 때이 오류 메시지가 표시됩니다. 내가 jQuery를 프로토 타입 JS 파일을 모두 포함하고jQuery와 프로토 타입 간의 충돌

error http://dl.getdropbox.com/u/3481269/Screen%20shot%202011-04-30%20at%206.17.45%20PM.png

.

<script src="/javascripts/jquery.js?1303396383" type="text/javascript"></script> 
<script src="/javascripts/rails.js?1303562965" type="text/javascript"></script> 
<script src="/javascripts/application.js?1303842064" type="text/javascript"></script> 

    <script language="javascript" type="text/javascript"> 
     $j = jQuery.noConflict(); 
    </script> 

    <script src="/javascripts/prototype.js?1303686720" type="text/javascript"></script> 
<script src="/javascripts/jquery.purr.js?1302145859" type="text/javascript"></script> 
<script src="/javascripts/best_in_place.js?1302150372" type="text/javascript"></script> 

는 당신이 날이 오류의 원인 일 수 있습니다 어떤 문제가 촬영을 도와 드릴까요?

답변

4

당신은 너무 jQuery를 물건에 대해 당신이 지금은 최고 장소 플러그인이 jQuery를위한 있으리라 믿고있어 $j(document).ready(...

+1

그는'$'보다는'jQuery'를 사용할 수도 있습니다. – Aif

0

그래서 예를 들어 $$j를 사용하지 않는, 그래서 용서해야한다 $j에 jQuery를 .noConflict() 방법을 할당하는 내가 틀렸다면 이것의 나머지 부분. Prototype에 의존하는 JS를 작성하지 않았다면 아마 jQuery를 선호 할 것입니다. 스위치를 만들려면 pretty easy입니다.

적절한 네임 스페이스를 사용하여 두 가지를 모두 사용할 수도 있지만 그만한 가치는 없습니다. 둘 사이에 엄청난 양의 겹침이 있습니다. 코드에 많은 추가 가중치를 추가하고 있습니다. 하나의 JavaScript 프레임 워크가 한 페이지에 충분해야합니다! :)

+0

당신이 의미하는 하나의 DOM 라이브러리. jquery 나 프로토 타입이 실제로 프레임 워크가 아닙니다. –