Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.06.2013, 19:49
Аватар для spo
spo spo вне форума
Профессор
Отправить личное сообщение для spo Посмотреть профиль Найти все сообщения от spo
 
Регистрация: 11.05.2011
Сообщений: 213

Ошибка: 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) {
Ответить с цитированием
  #2 (permalink)  
Старый 04.06.2013, 19:59
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от spo
Получаю сообщение в консоли:
ReferenceError: k is not defined
Сообщение от spo
$(function() {
var k = 1;
она в локальной области видимости, у переменных объявленных внутри функций локальная область видимости, ограниченная функцией
Ответить с цитированием
  #3 (permalink)  
Старый 04.06.2013, 20:02
Аватар для spo
spo spo вне форума
Профессор
Отправить личное сообщение для spo Посмотреть профиль Найти все сообщения от spo
 
Регистрация: 11.05.2011
Сообщений: 213

Да с областями видимости у меня не очень дела обстоят.
Не подскажите как исправить ошибку?
Ответить с цитированием
  #4 (permalink)  
Старый 04.06.2013, 20:05
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

var k;
$(function() {
     k = 1;
     ......
Ответить с цитированием
  #5 (permalink)  
Старый 04.06.2013, 20:08
Аватар для spo
spo spo вне форума
Профессор
Отправить личное сообщение для spo Посмотреть профиль Найти все сообщения от spo
 
Регистрация: 11.05.2011
Сообщений: 213

Вообще да, но в моем случае это не подойдет, так как в одной функции переменная меняется а в другой проверяется.
Ответить с цитированием
  #6 (permalink)  
Старый 04.06.2013, 20:11
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от spo
ообще да, но в моем случае это не подойдет, так как в одной функции переменная меняется а в другой проверяется.
и? она видна во всех функциях.
var k =1;
$(function() {
    
     ......



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

Последний раз редактировалось dmitriymar, 04.06.2013 в 20:16.
Ответить с цитированием
  #7 (permalink)  
Старый 04.06.2013, 20:19
Аватар для spo
spo spo вне форума
Профессор
Отправить личное сообщение для spo Посмотреть профиль Найти все сообщения от spo
 
Регистрация: 11.05.2011
Сообщений: 213

dmitriymar, большое спасибо, разобрался.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отловить баги в двух идентичных скриптах ddale jQuery 12 02.08.2012 19:42
как вывести видео Brook Общие вопросы Javascript 7 23.04.2012 19:22
обращение к cookie из JavaScript Atrox Элементы интерфейса 5 24.04.2009 09:29
Скрипт транслитерации skif Общие вопросы Javascript 9 19.03.2009 12:24
Четырехзначные числа вместо русских букв alosito Общие вопросы Javascript 4 13.05.2008 23:51