将RequireJs与自定义JS插件一起使用

时间:2016-04-02 15:12:41

标签: javascript jquery jquery-plugins requirejs

我正在尝试从requireJS模块引用测试Jquery插件,但由于某种原因它似乎无法正常工作。

我是这样的: 这是我的自定义插件:

test.js

$.fn.testfunction = function(){
     alert();
};

我从

引用它的地方

effects.js

define(['jquery', 'step1', 'global', 'test'], function($, step1, global, test){     
    $('body').test();       
});

最后我的main.js加载了effects.js

main.js

requirejs.config({
    baseUrl: "/",
    urlArgs: "" + Math.floor((Math.random() * 100) + 1),
    paths:
    {

            jquery: '//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min',
            topJs: '/holoweb/static/js/v3_landing_top',
            bottom: '/holoweb/static/js/v3_landing_bottom',
            global: '/v2/js/variables/global',
            registeringUser: '/v2/js/registeringUser',
            effects: '/v2/js/effects/effects',
            step1: '/v2/js/variables/step1',
            test: '/v2/js/effects/test',
    }
});

require(['jquery']);
require(['bottom']);
require(['topJs']);

require(['effects']);


require(['registeringUser'], function(Registration){
    var NewUser = Registration.CreateNewUser;
    NewUser.startStep(1); 
});

当我去查看它时,我从chrome开发人员工具中收到错误,显示: http://i.imgur.com/IdSZPgh.png

我不知道为什么。

请原谅任何不良行为,对于requirejs来说我是一个新手,谢谢。

1 个答案:

答案 0 :(得分:0)

test.js将jquery作为依赖项。将其替换为:

define(['jquery'], function($){   
    $.fn.testfunction = function(){
        alert();
    };
}

您还可以定义testfunction函数,但调用test函数。

$('body').test();替换为$('body').testfunction();

您不需要使用多个require函数。必须只有1个require函数才能成为应用程序的入口点。