Не может вызвать событие onclick
У меня есть событие onclick в моем файле index.html, связанное с функцией:
<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: расширение не определено
Что я делаю неправильно?
1 ответ
Проблема в том, что обработчики событий в DOM пытаются получить доступ к функциям, доступным в глобальной области.
Так как вы определяете функцию расход внутри замыкания (анонимная функция вызывается в jQuery ready), функция определяется в этой области, но не в глобальной области.
Кроме того, для определения таких функций не требуется ждать domReady... Я предлагаю вам переместить объявление за пределы этого обработчика событий и использовать его только для того, чтобы что-то действительно сделать.