2008-09-25 7 views
27

프로토 타입을 사용하는 아코디언 메뉴가있는 html 페이지에서 jQuery AutoComplete 플러그인을 사용하고 있습니다.jQuery & Prototype Conflict

둘 다 완벽하게 구분되어 작동하지만 한 페이지에 두 구성 요소를 모두 구현하려고 할 때 이해할 수없는 오류가 발생합니다.

캐치되지 않는 예외

: nsresult [예외 ... " 0X80004005 (NS_ERROR_FAILURE) nsIDOMViewCSS.getComputedStyle 성분은 실패 코드를 반환": "0X80004005 (NS_ERROR_FAILURE)에"위치 "JS 프레임 :: 파일 : /// C :/문서 및 설정/관리자/데스크탑/웹 사이트/JS/JQuery와 - 1.2.6.pack.js :: 익명 : : 라인 11 "데이터 : NO]

나는 밖으로 찾을 수 없습니다 jQuery와 충돌하는 파일은 accordion 메뉴에서 사용되는 'effects.js'입니다. 나는이 파일을 새로운 버전으로 바꾸려고 시도했으나 최근에는 아코디언 동작을 깨뜨리는 것으로 보인다.

아코디언에 사용 된 'effects.js'파일이 아코디언 데모 출력을 얻기 위해 수정되었다고 생각합니다. 또한 jQuery가 다른 라이브러리와의 충돌을 피할 필요가있는 재정의 된 메서드를 사용하여 시도했지만 작동하지 않았습니다.

stickmanlabs.com에서 아코디언 데모를 얻었습니다.

jQuery 자동 완성은 jQuery site에서 얻을 수 있습니다.

이 문제가 발생한 경험이 있습니까?

+0

http://docs.jquery.com/Using_jQuery_with_Other_Libraries – giorgio79

답변

117

: script.aculo.us의와 jQuery를 이전 버전과 충돌 (script.aculo.us의은을 확장하려고 시도했습니다 있었다 native Array 프로토 타입이 잘못되었습니다.) - 먼저 Scriptaculous의 복사본을 업그레이드하십시오.

그래도 작동하지 않으면 noConflict() (위에서 언급 한대로)을 사용해야합니다. 그러나, 잡기가있다. 당신이 플러그인을 포함하고 있기 때문에 당신은 예를 들어, 특정 순서에 포함 할 필요가 있습니다 :이 상황을 명확히하는 데 도움이

<script src="jquery.js"></script> 
<script src="jquery.autocomplete.js"></script> 
<script> 
    jQuery.noConflict(); 
    jQuery(document).ready(function($){ 
    $("#example").autocomplete(options); 
    }); 
</script> 
<script src="prototype.js"></script> 
<script src="effects.js"></script> 
<script src="accordion.js"></script> 

희망을.

+38

John Resig 자신의 답변보다 훨씬 좋을 수는 없습니다. – alex

8

이 경우 두 라이브러리를 동시에 사용하는 이유는 알 수 없습니다.

Prototype (물론 Scriptaculous ') Ajax.Autocompleter과 jQuery를 사용하거나 jQuery의 Accordion을 사용하여 Prototype을 제거 할 수 있습니다. 그들은 충돌을 일으킬 수 있습니다

  1. : 때문에 한 번에 두 라이브러리를 사용

    정말 좋은 생각이 아니다.

  2. 둘 다 포함하면 사용자가 강제로 다운로드 할 수 있습니다. 어느 bandwith 친절한 접근하지 않습니다.
+0

동의합니다. 이런 두 가지 자바 스크립트 프레임 워크를 사용하는 데에는 결코 좋은 이유가 없습니다. jquery에서 컨트롤러 X를 선호하고 프로토 타입에서 컨트롤러 Y를 선호하더라도. 추가 다운로드 및 충돌. – Espen

+0

* 이렇게 두 가지 자바 스크립트 프레임 워크를 사용하는 데에는 절대 이유가 없습니다. 예를 들어, Drupal CMS는 jQuery와 함께 제공되며, 많은 기여한 모듈이이 토대 위에서 확장되고 구축됩니다. 그러나 1 : 1 jquery에 해당하지 않는 간결한 자바 스크립트 가젯을 추가하려는 상황이 있습니다. 또한 SunSpider 벤치 마크 데이터에 따르면 각 자바 스크립트 프레임 워크는 성능면에서 장점과 약점을 가지고 있습니다. 익명 함수 내에서 모든 jquery 코드를 마무리하는 데 드루팔 (Drupal 7)이 기본적으로 기본 설정되어 있습니다. –