我的index.html文件中有一个与函数相关的onclick事件:
<div class="text-center"><div class="btn btn-success expand20" onclick="expand()">Agrandir à 20</div></div>
我的minesweeper.js文件链接在html中,如下所示:
<script type="text/javascript" src="minesweeper.js"></script>
我的函数expand.js在minesweeper.js中定义:
$( document ).ready(function() {
function expand() {
for (i = 0; i < 20; i++) {
$("table").append("<tr><td class='unopened'></td><td class='unopened'></td></tr>");
}
}
});
Jquery包含在我的html文件的末尾:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
然而,当我点击按钮时,我得到了
未捕获的ReferenceError:未定义展开
我做错了什么?
答案 0 :(得分:0)
问题是DOM中的事件处理程序正在尝试访问全局范围内可用的函数。
由于您在闭包内定义了函数开销(在jQuery ready上调用了一个匿名函数),因此该函数在该范围内定义,但不在全局范围内定义。
此外,定义这样的函数不需要等待domReady ...我建议你将声明移到该事件处理程序之外,并且仅使用它来实际执行某些操作。