使用requireJS和jQuery单击事件

时间:2014-01-22 22:27:47

标签: javascript jquery events requirejs

我正在使用requireJS。我有两个文件,主要应用程序配置,功能:

应用/ main.js

define(["jquery", "jquery_migrate"], function() {
    return {
        bar: function() {
            console.log('test');
        }
    }
});

并使用一些事件启动此功能:

应用/ events.js

require(['main_app'], function(foo) { 
    $('body').on('click', function(e) {
        foo.bar();
        e.preventDefault();
    });
});

这是路由文件:

app.js

requirejs.config({
    "baseUrl": "js/libs",
    "paths": {
        "main_app":         "../app/main",
        // global
        "app":              "../app",
        "jquery":           "jquery/jquery",
        "jquery_migrate":   "jquery/jquery_migrate"
    }
});
requirejs([ "app/main", "app/events" ]);

我仍然有Uncaught Error: Script error for: main_app并且没有点击事件的响应。有人可以帮忙吗?很多。

2 个答案:

答案 0 :(得分:2)

摆脱main_app密钥

requirejs.config({
    "baseUrl": "js/libs",
    "paths": {
        //"main_app":         "../app/main", // I believe this is causing a conflict
        // global
        "app":              "../app", 
        "jquery":           "jquery/jquery",
        "jquery_migrate":   "jquery/jquery_migrate"
    }
});

应用/ events.js

require(['app/main'], function(foo) { 
    $('body').on('click', function(e) {
        foo.bar();
        e.preventDefault();
    });
});

答案 1 :(得分:0)

由于此错误Uncaught Error: Script error for: main_app,您的脚本将无法执行。

您可能无法加载require.config或未指向正确的路径。在“网络”选项卡中验证实际加载了哪个文件,然后进行修复。

如果路径正确,那么代码中的某处就会出现JS语法错误。