2013-02-15 6 views
0

jQuery 1.4.4를 사용할 때 $(element).tabs(...)을 호출하여 탭을 생성했습니다. jquery 1.8.3을 사용하면 오류가 발생합니다.jQuery 1.8.3으로 탭 (jQuery UI)을 만들려면 어떻게해야합니까?

Uncaught TypeError: Object # has no method 'tabs'

왜 이러한 오류가 발생합니까? 유일한 차이점은 jQuery (jQuery UI, 심지어 jQuery조차도 아님)의 버전입니다. 내가 문제를 발견 jQuery를-UI 버전 1.10.0

+0

jQuery UI가 포함되어 있습니까? – j08691

+0

아니, 잘 작동합니다. HTML 마크 업은 무엇입니까? 그리고 네, 같은 방식으로 이루어집니다. 또한 사이드 노트는 올바른 순서로 스크립트를 추가했는지 확인하십시오. 나는 그걸 한번 봤는데 전에 그런 실수를 했어. – defaultNINJA

+0

@ j08691 사실, jQuery-1.8.3보다는 jQuery-1.4.4를 포함하면 오류가 발생하지 않습니다. – Shawn

답변

0

을 사용하고

NB, 그것은 jQuery를의 충돌 버전을 함께 할 수 있었다.

기본적으로

, 드루팔로드 1.4.4,하지만 난 1.8.3을 사용하려면, 그래서 이런 일을 수행

var drupalsJQuery = jQuery; 
// Load jq.1.8.3.js 
// Load jq.ui.1.9.2.js 

// MY CODE GOES HERE 

$ = jQuery = drupalsJQuery; // Restore $ and jQuery to their original value (the jQuery object of Drupal's version of jQuery (1.4.4)) 

마이 CODE에서 내가 console.log($().jquery);를 작성하는 경우, 그것은 인쇄, 섹션 간다 out 1.8.3, 내가 원하는대로, 그래서 내 버전 충돌이 끝났다고 생각. 내가 눈치 채지 못했던 것은 그것이 항상 작동하지 않는다는 것이 었습니다. (마이 CODE가 간다 섹션에서 계속)이 예제를 보자

console.log($().jquery); 
// Prints 1.8.3 
$(document).ready(function() { 
    console.log($().jquery); 
    // Prints 1.4.4 !!!! 
}); 

당신이 볼 수 있듯이, $(document).ready(function() { /*HERE*/ });

솔루션의 내부 버전 변경에 따른 매개 변수로 jQuery 오브젝트를 통과했다 익명 기능 :

console.log($().jquery); 
// Prints 1.8.3 
$(document).ready(function ($) { 
    console.log($().jquery); 
    // Prints 1.8.3 !!!! 
}); 

지금 버전은 올바른 유지됩니다.

이 동작을 제대로 설명 할 수 없으므로 누군가가 이러한 결과를 바탕으로 더 나은 대답을 제시 할 수 있습니다. 내 원래의 질문이 결국에는 다음과 같은 다른 문제가 있습니다. 다른 사용자와 관련이 있도록하려면 여기를 클릭하십시오.