Ответ 1
У вас здесь пара проблем.
Во-первых, вы определяете свой код в анонимной функции. Эта конструкция:
(function() {
...
)();
выполняет две вещи. Он определяет анонимную функцию и вызывает ее. Есть причины для этого, но я не уверен, чего вы на самом деле хотите.
Вы передаете блок кода setTimeout()
. Проблема заключается в том, что update()
не выполняется в пределах области действия при выполнении как это. Однако, если вы перейдете в указатель на функцию, чтобы это работало:
(function() {
$(document).ready(function() {update();});
function update() {
$("#board").append(".");
setTimeout(update, 1000); }
}
)();
потому что указатель функции update
находится в пределах области действия этого блока.
Но, как я уже сказал, нет никакой анонимной функции, поэтому вы можете ее переписать следующим образом:
$(document).ready(function() {update();});
function update() {
$("#board").append(".");
setTimeout(update, 1000); }
}
или
$(document).ready(function() {update();});
function update() {
$("#board").append(".");
setTimeout('update()', 1000); }
}
и обе эти работы. Второй работает, потому что update()
внутри кодового блока теперь находится в пределах области действия.
Я также предпочитаю сокращенную форму $(function() { ... }
и вместо вызова setTimeout()
внутри update()
вы можете просто использовать setInterval()
вместо:
$(function() {
setInterval(update, 1000);
});
function update() {
$("#board").append(".");
}
Надеюсь, что это очистит.