jQuery.noConflict(true) - 导致Marionette代码中断

时间:2014-08-29 10:09:32

标签: jquery backbone.js marionette conflict

我有以下代码:

    jq1111 = jQuery.noConflict(true);

    (function($, jQuery){
        // bunch of js libraries (backbone, underscore, etc)
        ...
        Marionette.Callbacks = function(){
            this._deferred = Marionette.$.Deferred();
            this._callbacks = [];
        };
        ...
    })(jq1111, jq1111)

我看到一个错误,它说this._deferred = Marionette.$.Deferred();中的$未定义。

我在函数中定义了$,$的所有其他实例似乎都没有问题。知道为什么会这样或者如何绕过它吗?

请注意,使用没有“true”的jQuery.noConflict()工作正常,但我在新函数调用中定义了jQuery,所以不应该有区别......

谢谢。

1 个答案:

答案 0 :(得分:0)

我决定改变我的代码来执行以下操作:

(function($, jQuery){
    // bunch of js libraries (backbone, underscore, etc)
    ...
})($, jQuery)

jq1111 = jQuery.noConflict(true);

我不确定为什么标准是在定义jQuery之前定义noConflict(),然后在函数中使用你的定义。 老实说,这样做会更有意义。