出了什么问题.我尝试制作对象,但是当我尝试初始化时,我在控制台中收到此错误:我尝试将所有内容放入document.ready和whitout,但不起作用.在这两种情况下我都有一些错误.对于愚蠢的问题,我很抱歉
ReferenceError: Circle is not defined
var obj = new Circle;
Run Code Online (Sandbox Code Playgroud)
JS
$(function(){
var Circle = {
init: function() {
console.log("Circle initialized");
}
};
});
Run Code Online (Sandbox Code Playgroud)
HTML
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="javascript/circle.js"></script>
<script>
$(document).ready(function(){
var obj = new Circle;
obj.init();
})
</script>
</head>
<body>
<div id="test" >TODO write content</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
新的更新
$(function(){
window.Circle = {
init: function() {
console.log("Circle initialized");
}
};
window.Circle.init();
});
Run Code Online (Sandbox Code Playgroud)
....
<head>
<script>
window.Circle().init();
</script>
</head>
Run Code Online (Sandbox Code Playgroud)
您已在另一个函数中定义了"Circle"函数- 您作为"ready"处理程序传递的匿名函数.因此,该符号("Circle")对该函数是私有的,而对其他代码不可见.
你可以像这样全局化:
window.Circle = {
// ...
};
Run Code Online (Sandbox Code Playgroud)
您也可以将它添加到jQuery命名空间(可能适合也可能不适合;取决于您正在做什么),或者您可以为应用程序代码开发自己的命名空间.或者,最后,您可以考虑组合您的jQuery"ready"代码,以便"Circle"对象和使用它的代码都出现在同一个处理程序中.
编辑 - 另一种可能性是将"Circle"声明完全移出"ready"处理程序.如果您所做的只是初始化该对象,并且您的属性值不需要任何需要DOM或其他尚未可用资源的工作,那么您可以摆脱$(function() { ... })包装器.
| 归档时间: |
|
| 查看次数: |
589 次 |
| 最近记录: |