0

我使用无冲突方法来避免 jQuery 和 Mootools 之间的冲突。

$.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

根据您的评论,问题是您在调用Test()构造函数时没有传递所需的参数。

你在评论中说你正在做:

var test = new Test();

这意味着Test函数中的第一个参数将是未定义的,因此$将是未定义的。

您需要这样做:

var test = new Test(jQuery);    

如果你这样做,参数定义$将适用于你的第一个代码块中的两种方法。

于 2013-10-25T23:26:36.793 回答
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 回答