2012-02-27 2 views
2

페이지에서 위젯을 사용하고 있습니다. 페이지가 jQuery 1.3.2를 사용하고 있으며이 페이지의 많은 jQuery 플러그인은 jQuery 1.3.2를 사용합니다. 위젯은 jQuery 1.7.1을 사용하고 있으며, 위젯을 제공하는 많은 jQuery 플러그인은 jQuery 1.7.1을 사용한다. 문제는 sidjs 라이브러리를 사용하여 위젯을 페이지에로드 할 때입니다. jquery 버전으로 인해 자바 스크립트 오류가 발생하는 충돌이 있습니다. 나는 인터넷을 찾아서 이것을 해결하기 위해 "$ .noConflict()"를 사용할 수 있음을 알아 낸다. 하지만 여러 곳에서 코드를 변경해야합니다. 나는 또한 jQuery 플러그인의 코드를 변경해야한다고 생각한다. 이 작업을 수행 할 수있는 좋은 방법이 있습니까?다른 버전의 jquerys를로드 할 때 문제를 해결하는 방법은 무엇입니까

+0

난 당신이 유 사용하고있는 플러그인을 맞는 호환 JQuery와 버전을 사용하기위한 그것의 더 나은 생각합니다. jsfiddle에서 시도해보십시오. – Bert

+1

1.3.2에서 1.7.1로 명백하게 의존하는 코드를 업데이트하는 것이 얼마나 힘듭니다. 구문은 그다지 변하지 않았습니다. –

+0

"구문이 그다지 변함이 없다"는 것은 무엇을 의미합니까? "$ .noConflict()"구문이 제대로 작동하지 않을 것입니다. – David

답변

2

추가 :

그것의 자신의 .js 파일에
window.$jq171 = jQuery.noConflict(); 

, 당신은 jQuery를 1.7.1로드하는 경우 즉시 나중에 그것을로드 SidJS를 사용합니다. 내가 생각할 수있는 유일한 방법은 jquery-1.7.1.js 또는 jquery-1.7.1.min.js 파일의 맨 끝에 같은 줄을 추가하는 것보다 쉽습니다 (어느 것이 든). 개인적으로, 나는 그것을 자신의 파일에 보관할 것입니다.

그런 다음 jQuery 1.7.1을 참조하는 스크립트에서 일반적으로 입력하는 $ 대신 $jq171을 사용하십시오. 예는 다음과 같습니다

$(document).ready(function() { 
    //normal style 
}); 

가된다 :

$jq171(document).ready(function() { 
    //normal style 
});