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