Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ошибка: var is not defined (https://javascript.ru/forum/misc/38505-oshibka-var-not-defined.html)

spo 04.06.2013 19:49

Ошибка: var is not defined
 
Подскажите где я допустил ошибку и почему не работает скрипт.

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

Первая часть в файле 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

Цитата:

Сообщение от spo
Получаю сообщение в консоли:
ReferenceError: k is not defined

Цитата:

Сообщение от spo
$(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

Цитата:

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

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



Цитата:

Сообщение от spo
setTimeout("start_script_timer()"

скобки и кавычки незачем

spo 04.06.2013 20:19

dmitriymar, большое спасибо, разобрался.


Часовой пояс GMT +3, время: 05:41.