加载JavaScript的变量即使被加载也不能调用
问题描述:
任何人都可以帮我解决这个问题吗?加载JavaScript的变量即使被加载也不能调用
如果我有这个工作示例:
var Login = function() {
var handleLogin = function() {//code here
}
var handleForgetPassword = function() {//code here
}
var handleRegister = function() {//code here
}
return {
init: function() {
handleLogin();
handleForgetPassword();
handleRegister();
}
};
}();
jQuery(document).ready(function() {
Login.init();
});
但下面的例子给出了一个错误。即使我确定该文件已加载。我无法确定函数的范围。
<script src="javascriptLoginfile.js" type="text/javascript"></script>
<script>
jQuery(document).ready(function() {
Login.init();
});
</script>
错误
Uncaught ReferenceError: Login is not defined at HTMLDocument. (login:160) at i (jquery.min.js:2) at Object.fireWith [as resolveWith] (jquery.min.js:2) at Function.ready (jquery.min.js:2) at HTMLDocument.K (jquery.min.js:2)
答
为我工作。
var Login = function() {
var handleLogin = function() { //code here
console.log('handleLogin');
}
var handleForgetPassword = function() { //code here
console.log('handlForgetPassword');
}
var handleRegister = function() { //code here
console.log('handleRegister');
}
return {
init: function() {
handleLogin();
handleForgetPassword();
handleRegister();
}
};
}();
jQuery(document).ready(function() {
Login.init();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答
因为是的WebPack捆绑的一切,我无法从绑定的脚本之外调用。
我解决了这个变化:
var Login = function() { }
要:
window.Login = function() { }
也许有对被停止执行javascriptLoginFile.js一些错误之前登录完全实例? – Bardo
您提到的文件与文件完全相同,除了最后的这一部分。 (函数(){ Login.init(); }); –
我已验证您的代码并正在正常工作,即将功能代码登录到单独的JS文件中,并从jQuery文档准备好的HTML页面调用该函数。没有问题(在我的机器上进行本地测试)。 –