无法触发onclick事件
can't trigger onclick event
我的 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>
然而,当我点击按钮时,我得到
Uncaught ReferenceError: expand is not defined
我做错了什么?
问题是 DOM 中的事件处理程序正在尝试访问全局范围内可用的函数。
由于您在闭包中定义函数 expend(在 jQuery 准备好时调用的匿名函数),该函数在该范围内定义,而不是在全局范围内定义。
此外,定义这样的函数不需要等待 domReady...我建议您将声明移到该事件处理程序之外,并且仅使用它来实际执行某些操作。
我的 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>
然而,当我点击按钮时,我得到
Uncaught ReferenceError: expand is not defined
我做错了什么?
问题是 DOM 中的事件处理程序正在尝试访问全局范围内可用的函数。
由于您在闭包中定义函数 expend(在 jQuery 准备好时调用的匿名函数),该函数在该范围内定义,而不是在全局范围内定义。
此外,定义这样的函数不需要等待 domReady...我建议您将声明移到该事件处理程序之外,并且仅使用它来实际执行某些操作。