2010-01-28 62 views
1

我似乎正在排除$()函數的命名空間 衝突問題。我使用驗證1.4。我試圖 使用jQuery的noConflict()方法,但我仍然缺少一些東西。在流水遊戲工具中使用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和改變內部變量$j

0

我沒有做太多與noConflict,但不應該這樣:

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

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