0

jQuery と Mootools の間の競合を避けるために、no conflict メソッドを使用しています。

$.noConflict();

次のクラスを定義するときは、次のコードのように「$」記号を使用して解放します。

$.noConflict();

var Test = function ($) {

    this.method1 = function() {

        $('.testDiv').html('hey baby!');
    }

    this.method2 = function() {

        $('.testDiv').html('hey baby baby!');

    }
}

うまくいかないのはなぜですか?

クラス内の各メソッドに $ 記号を使用する必要があるのはなぜですか?

このような:

var Test = function () {

    this.method1 = function($) {

        $('.testDiv').html('hey baby!');
    }

    this.method2 = function($) {

        $('.testDiv').html('hey baby baby!');

    }
}
4

2 に答える 2

0

このように書く..

jq = $.noConflict(true);

and instead of using $ use jq like:
var Test = function (jq) {

    this.method1 = function() {

        jq('.testDiv').html('hey baby!');
    }

    this.method2 = function() {

        jq('.testDiv').html('hey baby baby!');

    }
}
于 2013-10-25T19:54:02.127 に答える
0

あなたのコメントによると、問題は、Test()コンストラクターが呼び出されたときに必要な引数を渡していないことです。

あなたはあなたのコメントであなたがやっていると言った:

var test = new Test();

これは、Test関数の最初の引数が未定義になり、したがって未定義になることを意味し$ます。

代わりにこれを行う必要があります:

var test = new Test(jQuery);    

$これを行うと、最初のコード ブロックの両方のメソッドに対しての引数定義が機能します。

于 2013-10-25T23:26:36.793 に答える