2013-03-19 1 views
1

jsp 페이지에서 나는 내부적으로 jquery-1.6.4.js를 사용하는 struts2-jquery-plugin-3.2.1.jar를 사용하고 있으며 facebox를 사용하고 있습니다 (jquery-1.4.3.min.js를 사용합니다) . 그래서 내 struts2-jquery-plugin-3.2.1.jar은 첫 번째로 facebox jquery를로드합니다. 하지만 jquery-1.4.3.min.js를 넣으면 struts2-jquery-plugin-3.2.1.jar이 작동을 멈추고 jquery-1.4.3.min.js를 제거하면 내 facebox가 작동을 멈추게됩니다. 나는이 포럼을 따른다 : herehere 그러나이 문제를 고칠 수 없다. 한 남자가 나에게 struts2-jquery-plugin의 새로운 버전을 사용하도록 조언한다. 그러나 만약 내가 struts2-jquery-plugin의 새로운 버전을 사용한다면 나는 사용할 수 없다. 내 프로젝트의 일부 코드가 작동을 멈췄습니다. 이 문제에 대한 지식을 공유하십시오.Jquery 라이브러리의 두 버전 간의 충돌을 피하려면 어떻게해야합니까?

답변

0

그냥 최신 jQuery (귀하의 경우 1.6.4.js)를 사용하면 효과가 있습니다. 여러 개의 변경 내용이 포함되어 있기 때문에 1.9로 업데이트하지 마십시오.

jquery-1.4.3을 제거하면 facebox가 작동을 멈추게 할 이유가 없습니다. 1.4에서 사용되지 않는 모든 메소드는 1.6에 포함됩니다.

콘솔의 오류를 확인하십시오. 그래서 당신의 라이브러리가 필요

http://api.jquery.com/jQuery.noConflict/ 같이 정의 할 수 :

+0

때 나는 jquery-1.4.3.js를 넣었다. struts2-jquery-plugin-3.2.1.jar이 작동을 멈추고 콘솔에이 오류 메시지를 표시 할 수 없다. 정의되지 않은 메소드 'bind'를 호출한다. –

5

당신은 jQueryNoConflict 기능을 사용할 필요가

<script src='jquery-1.3.2.js'></script> 
<script> 
var jq132 = jQuery.noConflict(); 
</script> 

<script src='jquery-1.4.2.js'></script> 
<script> 
var jq142 = jQuery.noConflict(); 
</script> 

다음은 다음과 같이 둘 다 사용할 수 있습니다

jq132.ajax(....); 
jq142('#my-elem').hide();