2012-01-28 2 views
0

내 페이지 중 하나의 제목 이미지에 기본 페이드 인 자바 스크립트 기능을 사용하고 있으며 해당 페이지에서 jQuery 세로 형 아코디언 메뉴를 사용하려고하면 제목이로드되는 중입니다. 나는 모든 자바 스크립트 코드 (아코디언에 사용되는 파일 중)를 살펴 봤는데 충돌하는 함수를 찾아 냈다. 다음 함수는 스크립트 내 기본 페이드 인 : 여기 자바 스크립트 충돌 (페이드 인 VS. jQuery 아코디언)

<script type="text/javascript"> 
    $('html').addClass('js_on'); 

    $(window).load(function(){ 
     $('#slideshow').fadeIn(2000); 
    }); 
</script> 

가 충돌 코드의 몇 라인 (인 문은 충돌 그것은 전에 모든입니다하지 않습니다하지만 난 그냥 '경우'문을 포함 '가'. 그래서 당신은) 전체 기능을 가지고 : 나는이 일에 내 머리를 wracking있어

function $(element) { 
    if (arguments.length > 1) { 
    for (var i = 0, elements = [], length = arguments.length; i < length; i++) 
    elements.push($(arguments[i])); 
    return elements; 
    } 
    if (typeof element == 'string') 
    element = document.getElementById(element); 
    return Element.extend(element); 
} 

. 누구든지 어떤 생각을 가지고 있습니까?

+0

'함수 $ (요소) {'는 무엇입니까? 보이지 않습니다. –

+0

기본적으로이 중첩 된 아코디언 메뉴의 일부를 제어하는이 거대한 JS 파일의 일부입니다. 내가 그것을 꺼내면 제목은 사라지지만 아코디언은 작동을 멈추고 수천 줄의 코드를 통해 그 줄로 정확하게 좁혔습니다. – MillerMedia

+0

'function $ (element) {'함수는'$'라는 함수를 생성하여 정의 된 범위에서 jquery를 오버라이드합니다. –

답변

1

jQuery는 두 가지 액세스 방법을 제공합니다 : jQuery()$() 약식. 그들은 동등하다.

귀하의 아코디언 코드가 $() 기능을 덮어 쓰고있어 jQuery()으로 남겨 둡니다.

그래서 당신은 하나의 옵션은 단순히 긴 구문을 사용하는 것입니다

<script type="text/javascript"> 
jQuery('html').addClass('js_on'); 

jQuery(window).load(function(){ 
    jQuery('#slideshow').fadeIn(2000); 
}); 
</script> 

또 다른 옵션은 내부의 속기 $ 구문 폐쇄에 jQuery을 통과 한 후 사용하는 것입니다

<script type="text/javascript"> 
// Self-executing function that calls itself immediately 
(function($){  
    // Inside this function, '$' now refers to the argument that was passed in, which is jQuery 
    $('html').addClass('js_on'); 

    $(window).load(function(){ 
     $('#slideshow').fadeIn(2000); 
    }); 
}(jQuery)); 
</script> 

을 그리고 또 다른 옵션은 jQuery UI 라이브러리 (http://jqueryui.com/demos/accordion/)의 아코디언을 사용하는 것입니다. 그러면 처음부터 충돌하는 모든 문제를 피할 수 있습니다.

관련 문제