Вход

Просмотр полной версии : Ошибка: var is not defined


spo
04.06.2013, 19:49
Подскажите где я допустил ошибку и почему не работает скрипт.

Скрипт должен каждые три секунды запускать функцию, а так же прекращать работу при наведении на контейнер и продолжать после того когда курсор был убран.

Первая часть в файле script.js:
$(function() {
var k = 1;
$("div.block").hover(
function () {k = 0;},
function () {k = 1;}
);
});

Вторая часть в коде <body>:
start_script();
function start_script() {setTimeout("start_script_timer()", 3000);};
function start_script_timer() {
if(k == 1) {console.log("3 sec.");};
start_script();
};

Получаю сообщение в консоли:
ReferenceError: k is not defined
if(k == 1) {

dmitriymar
04.06.2013, 19:59
Получаю сообщение в консоли:
ReferenceError: k is not defined

$(function() {
var k = 1;
она в локальной области видимости, у переменных объявленных внутри функций локальная область видимости, ограниченная функцией

spo
04.06.2013, 20:02
Да с областями видимости у меня не очень дела обстоят.
Не подскажите как исправить ошибку?

dmitriymar
04.06.2013, 20:05
var k;
$(function() {
k = 1;
......

spo
04.06.2013, 20:08
Вообще да, но в моем случае это не подойдет, так как в одной функции переменная меняется а в другой проверяется.

dmitriymar
04.06.2013, 20:11
ообще да, но в моем случае это не подойдет, так как в одной функции переменная меняется а в другой проверяется.

и? она видна во всех функциях.
var k =1;
$(function() {

......



setTimeout("start_script_timer()" скобки и кавычки незачем

spo
04.06.2013, 20:19
dmitriymar, большое спасибо, разобрался.