我正在开发一个小项目来使用easeljs和jQuery创建一个图像库,我对这两个工具都很陌生,这个特殊的问题让我摸不着头脑。
我的HTML非常基础,我只想在开始添加任何铃声和口哨之前获得功能:
Item

如果我理解正确,为了设置一个新的阶段并基本上让整个脚本工作,我需要在我的脚本开头运行<body onload="init();">
<div style="margin-top:20px;" class="col-sm-8">
<div class="embed-responsive embed-responsive-4by3">
<canvas class="embed-responsive-item" id="slide-show" width="640" height="480"></canvas>
</div>
</div>
</body>
函数。
init()
&#13;
请注意,这肯定没有完成,部分功能已完成一半。我只是想进行一些调试,因为我处理了事情并在第一步遇到了墙,初始化函数似乎没有像预期那样触发。
答案 0 :(得分:0)
主要问题是<body onload="someFunction()">
将寻找在全局范围内定义someFunction
,即执行window.someFunction()
。
现在,您init()
不在全球范围内。它仅存在于$(document).ready(function(){ ... })
函数内。
因此,一种解决方案是将init
函数添加到全局范围,如下所示:
$(document).ready(function() {
// ... all your current definitions
window.init = init;
});
请注意,init
只会在触发window
jQuery事件后定义并添加到$(document).ready
这一事实。但它不应该是一个问题,因为$(document).ready
通常比onload
事件更早发生[1],因此在init
中调用之前定义<body onload="init()">
。
[1] $(document).ready
在加载 HTML文档后触发。 onload
是在所有内容(包括图片等)加载后触发的内置DOM事件。