从不同的“模块”导入函数

时间:2013-03-24 21:31:47

标签: javascript jquery

我是jQuery的新手,来自Python和Java背景,所以我很难习惯如何在不同的.js文件中工作。我有一个导入以下脚本的HTML文件:

    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script
        src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.0/jquery.validate.js"></script>
    <script src="{{ STATIC_URL }}/forms.js"></script>
    <script src="{{ STATIC_URL }}/workout1Alt.js"></script>

最后两个是我的。在forms.js中,我有一个通用函数validateNumberForm,我希望能够以更具体的workout1Alt.js形式使用它。表单的签名如下所示:

var validateNumberForm = function(id)

我在validateNumberForm中调用workout1Alt.js,如下所示:

validateNumberForm('#squatsForm');

但是我收到了这个错误:

Reference Issue: Cannot find variable validateNumberForm. 

有人能告诉我如何做这样的事情的最佳做法吗?

1 个答案:

答案 0 :(得分:1)

我猜你是在jQuery就绪处理程序中包含定义,如下所示:

$(function() {
    var validateNumberForm = function(id) { /* ... */ };
    // ...
});

这使validateNumberForm仅在那里可用。如果您希望它可用于其他文件,您可以将其移出现成的处理程序:

var validateNumberForm = function(id) { /* ... */ };
$(function() {
    // ...
});

或者您可以明确导出它:

$(function() {
    var validateNumberForm = function(id) { /* ... */ };
    window.validateNumberForm = validateNumberForm;
    // ...
});