无法触发onclick事件

时间:2015-10-22 11:46:48

标签: jquery events onclick

我的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:未定义展开

我做错了什么?

1 个答案:

答案 0 :(得分:0)

问题是DOM中的事件处理程序正在尝试访问全局范围内可用的函数。

由于您在闭包内定义了函数开销(在jQuery ready上调用了一个匿名函数),因此该函数在该范围内定义,但不在全局范围内定义。

此外,定义这样的函数不需要等待domReady ...我建议你将声明移到该事件处理程序之外,并且仅使用它来实际执行某些操作。