2011-11-11 8 views
0

jquery 용 라이브러리 그룹을 사용하고 있습니다. 나는 (script.php)라는 하나의 PHP 파일을 만들고이 파일에 모든 jqueries 라이브러리를 포함시켰다. 언제 어디서나 내가 Jquery를 요구할 때 나는이 script.php 파일을 포함하기 만하면된다. 모든 것이 잘되고 있지만 나의 도서관은 다른 도서관과 갈등하고 있습니다. $(document).ready(function() { 전에 $ .noConflict()를 사용하거나 $(document).ready(function() { 이후에 다른 라이브러리가 충돌하기 시작합니다. 오류를주는 내 특정 파일은 <script type="text/javascript" src="js/toggle.js"></script>입니다. 다음 코드가 있습니다. 어쨌든 코드를 수정하거나 문제를 해결할 수 있습니다.noConflict가 오류를 해결하지 않습니다.

$(document).ready(function() { 

$('.toggle_block').toggleElements({ 
    fxAnimation:'slide', 
    fxSpeed:'fast', 
    className:'toggler' 
}); 

}); 

답변

-1

jQuery.noConflict()jQuery의 인스턴스를 반환합니다. noConflict을 호출하는 것은 의미가 없습니다. 당신이 $ 기호를 사용하여 다른 라이브러리를 가지고 있다면, 당신은 jQuery를 jQuery를이 후이 권리를 넣어 실행되기 전에 사용했던 $을 복원 할 수 있습니다

var $q = jQuery.noConflict(); //$q = independent instance of jQuery 
$q(document).ready(function() { 

    $q('.toggle_block').toggleElements({ 
     fxAnimation: 'slide', 
     fxSpeed: 'fast', 
     className: 'toggler' 
    }); 

}); 
+0

재미있는 예를 들어,하지만 난 당신을 줄 -1 "_Calling noConflict 어떤 sense._가되지 않습니다"를 참조하십시오. 이해가 안되면 jQuery 개발자보다 더 똑똑합니다. 왜냐하면 그들은 아직이 함수를 사용하지 않기 때문입니다 (http://api.jquery.com/jQuery.noConflict/). 그것은 매우 유용한 함수이며 때로는 매우 유용합니다. – Tadeck

0

noConflict를 사용하여 당신의 목적

포함 :

$.noConflict() 

그런 다음, 당신은 단지 대신 $의이 같은 jQuery를 사용하고의 $ 기호를 남길 수 있습니다 다른 라이브러리 :

jQuery(document).ready(function() { 
    jQuery('.toggle_block').toggleElements({ 
     fxAnimation:'slide', 
     fxSpeed:'fast', 
     className:'toggler' 
    }); 
}); 

당신이 할 수있는, 당신이로 원하는 경우 jQuery를위한 당신의 자신의 단축 심볼을 물론 :

var $j = jQuery; 

$j(document).ready(function() { 
    $j('.toggle_block').toggleElements({ 
     fxAnimation:'slide', 
     fxSpeed:'fast', 
     className:'toggler' 
    }); 
}); 

중요한 문제는 한 번에 하나의 라이브러리가를 사용할 수 있다는 것입니다 $ 기호.

(function($) { 
    // in this block, $ is an argument variable that has been temporarily 
    // given the value of jQuery without interfering with the value of $ outside 
    // this block of code 
    $(document).ready(function() { 
     $('.toggle_block').toggleElements({ 
      fxAnimation:'slide', 
      fxSpeed:'fast', 
      className:'toggler' 
     }); 
    }); 

}(jQuery)); 
+0

이 라이브러리에 관련된 전체 플러그인 인 my other를 사용하여 오류가 발생했습니다. 'jQuery.toggleElementsShown은 함수가 아닙니다. ' 문제는이 파일에서 해결되지만. 그러나 다른 사람과 시작했다. –

0

은 jQuery.noConflict()에 대한 API documentation이 말한다 : 같은이 한 다른 해결 방법이 있습니다

우리가, 우리가 반환 제어 할 수있는 jQuery를 함께 다른 자바 스크립트 라이브러리를 사용해야하는 경우 $ 다시 다른 라이브러리에 $ .noConflict()

를 호출 의미와 즉시 $.noConflict()$ 바리 아 실행으로 ble는 더 이상 jQuery의 별칭이 아닙니다. 따라서이 코드는

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

... 다른 라이브러리와 함께 jQuery 메서드를 사용하려고 시도하고 있습니다.

당신은 아마이 원하는 :

// In the outer scope, we use jQuery 
jQuery(document).ready(function($) { 
    // In this scope we can use $ 
}); 
관련 문제