从.js库调用网页中的Javascript函数

从.js库调用网页中的Javascript函数,javascript,jquery,Javascript,Jquery,我对Javascript还很陌生,所以请接受它的价值 因此,我的代码中有三条验证路径。路径出现在不同的页面上。我的想法是将验证代码放在页面中,然后从包含的库中调用并对其执行操作。在页面上,它们都具有相同的名称空间名称和函数名称,因此给了我一些很好的多态性 因此,在a.html中: <script> if(typeof INSTANTFEEDBACKVALIDATE === "undefined") { INSTANTFEEDBACKVALIDATE = {}; } </scri

我对Javascript还很陌生,所以请接受它的价值

因此,我的代码中有三条验证路径。路径出现在不同的页面上。我的想法是将验证代码放在页面中,然后从包含的库中调用并对其执行操作。在页面上,它们都具有相同的名称空间名称和函数名称,因此给了我一些很好的多态性

因此,在a.html中:

<script>
if(typeof INSTANTFEEDBACKVALIDATE === "undefined") { INSTANTFEEDBACKVALIDATE = {}; }
</script>
<script type="text/javascript" language="javascript" src="/static/js/b.js"></script>
...
$(document).ready(function(){
$('.submit-request').click(function(e){
    e.preventDefault();

    INSTANTFEEDBACK.do_stuff();
    $('#myform').submit();
}
})
(function(){

INSTANTFEEDBACKVALIDATE.validate = function(){

    // validation code
}
})
然后回到a.html:

<script>
if(typeof INSTANTFEEDBACKVALIDATE === "undefined") { INSTANTFEEDBACKVALIDATE = {}; }
</script>
<script type="text/javascript" language="javascript" src="/static/js/b.js"></script>
...
$(document).ready(function(){
$('.submit-request').click(function(e){
    e.preventDefault();

    INSTANTFEEDBACK.do_stuff();
    $('#myform').submit();
}
})
(function(){

INSTANTFEEDBACKVALIDATE.validate = function(){

    // validation code
}
})
我遇到麻烦的地方是在返回的过程中--在调用INSTANTFEEDBACKVALIDATE.validate()时,找不到INSTANTFEEDBACKVALIDATE全局函数。或者至少我是这样理解这个信息的:

Uncaught TypeError: Object #<Object> has no method 'validate' 
未捕获类型错误:对象#没有方法“验证”

有人有什么想法吗?或者是更好的方法?

在a.html中,您需要像这样调用函数:

   (function(){

        INSTANTFEEDBACKVALIDATE.validate = function(){

        // validation code
        }
    })();

注意“();”最后。没有这个,您只是声明函数,而不是调用它

我想在它前面需要一个(var)来声明它——我不会这样做的。。。最后一个需要IMO的是在页面级JS中填充的业务逻辑。在页面级别运行的唯一内容应该是对库模块的初始化调用,可能还有事件绑定(尽管我认为您将事件绑定作为init进程的一部分放在lib/modules中)。@prodigitalson只是出于兴趣,你的意思是类似于这种结构的东西--@Tasos在某种程度上是的,尽管有很多硬编码的东西,我可能会通过某种选项散列到init方法来生成参数@prodigitalson如果所讨论的验证不仅仅是“他们是否在这个领域输入了什么内容”,我会同意。我没有发布这些内容,只是因为我不想用无关的细节分散人们的注意力。我自己也不知道,干杯,我会在我的笔记中写上:)是的,就是这样。哎呀。就像我说的,我是Javascript的新手。