2010-01-28 5 views
1

$() 함수의 충돌로 네임 스페이스 문제를 해결하는 중일 것 같습니다. 나는 1.4를 사용하고있다. 나는 을 jQuery의 noConflict() 메소드를 사용하려고 시도했지만 여전히 뭔가 빠져있다.flowplayer 도구와 함께 jQuery noConflict 사용

<link href="/c/jq/ui.all.css" rel="stylesheet" type="text/css" /> 
<script src="http://cdn.jquerytools.org/1.1.2/full/ 
jquery.tools.min.js" type="text/javascript"></script> 
<script src="/js/jquery.ui.core.js" type="text/javascript"></script> 
<script src="/js/jquery.ui.tabs.js" type="text/javascript"></script> 
<script src="/js/jquery.ui.accordion.js" type="text/javascript"></ 
script> 
<script type="text/javascript"> 
    /* <![CDATA[ */ 
     var $j = jQuery.noConflict(); 
    /* ]]> */ 
</script> 
<script src="/js/cilp.js" type="text/javascript"></script> 
<script src="/js/jquery.validate.js" type="text/javascript"></script> 
<script src="/js/cilp/validate.js" type="text/javascript"></script> 

if i comment out the last two external references (the validate files) 
all is well. here is the validate.js file: 

$j(function($) { 
    $j.extend($.validator.messages, { 
     required: 'Required' 
    }); 

    $j('#qotw-form').validate({ 
     rules: { 
      'qotw-options': 'required' 
     }, 

     submitHandler: function() { 
      var answer = $j("input[name='qotw-options']:checked").val(); 
      var correct = answer == 'c' ? true : false; 
      var res = correct ? 'Correct!' : 'Try again!'; 
      $j('#qotw-answer').html(res); 
     }, 

     focusCleanup: true 

     //, debug: true 
    }); 

}); 

나는 바보 같은 짓을하고 있습니다. 난 그냥 난이 문제를 피하기 위해 주어진 플러그인을 네임 스페이스에 쉽게 알았 으면 좋겠어. 어떤 도와 주셔서 감사합니다!

답변

2

당신은 $j(function($) {

$의 값을 전달하지 않는 당신이 좋아하는 뭔가가 필요 : 그렇지 않으면

$j(function($,$j) { 
    $j.extend($.validator.messages, { 
     required: 'Required' 
    }); 
[...] 

})($,$j); 

을, 당신이 통과 $은 항상 정의되지 않습니다. 가정하면, 그렇지 않으면 있으며, Flowplayer $에 전달하는의 $j 전달 나는 noConflict와 많은 일을하지 않은 $j

0

에 내부 변수를 변경할 수 있지만이 안 :

$j.extend($.validator.messages, { 

$j.extend($j.validator.messages, { 
관련 문제