1

我似乎正在对 $() 函数的命名空间冲突进行故障排除。我正在使用验证 1.4。我尝试使用 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
    } );

} );

希望我在做一些愚蠢的事情。我只是希望我知道一种简单的方法来命名给定插件以避免这个问题。谢谢你的帮助!

4

2 回答 2

2

您没有传递$to的值$j(function($) {

你需要有类似的东西:

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

} )($,$j);

否则,$您传入的将始终未定义。假设,否则您将传入 flowplayer $,传入$j并将内部变量更改为$j

于 2010-07-23T14:35:56.727 回答
0

我没有做太多没有冲突,但不应该这样:

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

$j.extend( $j.validator.messages, {
于 2010-07-23T14:36:09.487 回答