Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中修复此错误_Javascript_Jquery - Fatal编程技术网

如何在javascript中修复此错误

如何在javascript中修复此错误,javascript,jquery,Javascript,Jquery,我有大量绑定到不同元素的函数 因此,我决定在一个文件中定义所有函数&然后从另一个文件调用 HTML site.js $(document).ready(function (e) { GetCustomers(); }); 但这是抛出下面的错误 未捕获引用错误:未定义GetCustomers 没有必要将所有函数包装在$document.ready中,这是您的问题。两个问题: .ready不会自动启动,因此代码不会被执行和删除 因此,不会创建函数 因为您是在中完成的。准备好了吗?不要将函数绑定到

我有大量绑定到不同元素的函数

因此,我决定在一个文件中定义所有函数&然后从另一个文件调用

HTML

site.js

$(document).ready(function (e) {
 GetCustomers();
});
但这是抛出下面的错误

未捕获引用错误:未定义GetCustomers


没有必要将所有函数包装在$document.ready中,这是您的问题。两个问题:

.ready不会自动启动,因此代码不会被执行和删除 因此,不会创建函数 因为您是在中完成的。准备好了吗?不要将函数绑定到窗口,这样就无法在其他任何地方访问它们。
没有必要将所有函数包装在$document.ready中,这是您的问题。两个问题:

.ready不会自动启动,因此代码不会被执行和删除 因此,不会创建函数 因为您是在中完成的。准备好了吗?不要将函数绑定到窗口,这样就无法在其他任何地方访问它们。
从functions.js中删除包装$document.ready

从functions.js中删除包装$document.ready

$(document).ready(function (e) {
//like this I have 50+ functions 
function GetCustomers()
{

   //ajax call.
}

});
$(document).ready(function (e) {
//like this I have 50+ functions 
function GetCustomers()
{

   //ajax call.
}

});
您可以在ready处理程序中定义函数,使其位于该作用域的本地。将它移到外部,或者干脆扔掉$document.ready,这样它就在全局范围内了。请参阅函数作用域文档

如果不想将所有这些函数添加到全局范围,可以创建一个全局对象,并将其添加为方法:

var app = {
    getCustomers: function(){},
    ...
};
您可以在ready处理程序中定义函数,使其位于该作用域的本地。将它移到外部,或者干脆扔掉$document.ready,这样它就在全局范围内了。请参阅函数作用域文档

如果不想将所有这些函数添加到全局范围,可以创建一个全局对象,并将其添加为方法:

var app = {
    getCustomers: function(){},
    ...
};

将GetCustomers从document.ready函数中拉出

将GetCustomers从document.ready函数中拉出

不要在document ready中使用函数

$(document).ready(function (e) {

 function GetCustomers()
{

 //ajax call.
 }

});

<script>

function GetCustomers()
{

 //ajax call.
 }
</script>

请勿在document ready中使用此功能

$(document).ready(function (e) {

 function GetCustomers()
{

 //ajax call.
 }

});

<script>

function GetCustomers()
{

 //ajax call.
 }
</script>

如果在单独的文件中定义,则不要在document.ready in functions.js intead中使用直接定义函数的GetCustomers。如果在单独的文件中定义,则不要在document.ready in functions.js intead中使用直接定义函数的GetCustomers。

将函数写在document.ready之外

 <script>
   function GetCustomers()
   {
       //your code.
   }
 </script>

将您的函数写在文档外。准备好了吗

 <script>
   function GetCustomers()
   {
       //your code.
   }
 </script>

有没有更好的方法来做同样的事情?你可以在外面用。函数GetCustomers{//ajax call.}它正在呈现..谢谢有没有更好的方法来做同样的事情?您可以在外部使用。函数GetCustomers{//ajax call.}正在呈现..添加了ThanksUserful链接。谢谢:还有更好的方法吗。由于这将弹出窗口,因此添加了全局名称空间用户链接。谢谢:还有更好的方法吗。因为这将导致窗口全局命名空间