Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.03.2011, 14:58
Интересующийся
Отправить личное сообщение для Detex Посмотреть профиль Найти все сообщения от Detex
 
Регистрация: 01.03.2011
Сообщений: 14

JS не считает
Привет уважаемые программисты. Объясните пожалуйста где я ошибся. Дело в том, что вторая функция не хочет вычитать из переменной Opacity.
В первой функции я прибавляю к Opacity до тех пор, пока она не превысит 1, после чего завершаю функцию методом clearInterval(setIN). Тут всё ожидаемо, всё работает.

Затем запускаю вторую функцию и ничего. Вычитает только один раз до 0.9, а дальше не хочет. Если поменять - на + то прибавляет без проблем.
Вот код:
function openauthorize()
{
if(opacity>1) clearInterval(setIN);
opacity=opacity+0.1;
document.getElementById('df').innerHTML=opacity;

}

function closeauthorize()
{
opacity=opacity-0.1;// если я тут поставлю + то считает нормально
document.getElementById('df').innerHTML=opacity;
}
Ответить с цитированием
  #2 (permalink)  
Старый 01.03.2011, 15:03
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от Detex
Объясните пожалуйста где я ошибся
Например в том, что не сделал полный пример...
Ответить с цитированием
  #3 (permalink)  
Старый 01.03.2011, 15:08
Интересующийся
Отправить личное сообщение для Detex Посмотреть профиль Найти все сообщения от Detex
 
Регистрация: 01.03.2011
Сообщений: 14

Извините, не понял? Какой пример?
Ответить с цитированием
  #4 (permalink)  
Старый 01.03.2011, 15:08
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от Detex
Какой пример?
Для иллюстрации проблемы нужен полный тестовый пример... А не куски какого-то кода.
Ответить с цитированием
  #5 (permalink)  
Старый 01.03.2011, 15:13
Интересующийся
Отправить личное сообщение для Detex Посмотреть профиль Найти все сообщения от Detex
 
Регистрация: 01.03.2011
Сообщений: 14

Подключаемый JS
var opacity = 0;
var start = 0;
function openauthorize()
{
if(opacity>1) clearInterval(setIN);
opacity=opacity+0.1;
document.getElementById('df').innerHTML=opacity;

}

function closeauthorize()
{
opacity=opacity-0.1;
document.getElementById('df').innerHTML=opacity;
}


HTML страница
...
<div id='df'></div>
<span onClick='var setIN=setInterval(openauthorize,10)'>Плюс</span>
<span onClick='setInterval(closeauthorize,10)'>Минус</span>
...
Ответить с цитированием
  #6 (permalink)  
Старый 01.03.2011, 15:56
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Detex, попробовал собрать твой "пример"...

<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
</style>
<script>
var opacity = 0;
var start = 0;
function openauthorize() {
	if(opacity>1) {
		clearInterval(setIN);
		return
	}
	opacity=opacity+0.1;
	document.getElementById('df').innerHTML=opacity;
}
function closeauthorize() {
	opacity=opacity-0.1;
	document.getElementById('df').innerHTML=opacity;
}
</script>
</head>
<body>
<div id='df'></div>
<span onClick='var setIN=setInterval(openauthorize,10)'>Плюс</span>
<span onClick='setInterval(closeauthorize,10)'>Минус</span>
</body>
</html>


Итог
Цитата:
setIN is not defined
[Прерывать на этой ошибке] clearInterval(setIN);
Сообщение от Detex
В первой функции я прибавляю к Opacity до тех пор, пока она не превысит 1, после чего завершаю функцию методом clearInterval(setIN). Тут всё ожидаемо, всё работает.
Один раз плюсануть успевает. Потом ошибка - см.выше...

Сообщение от Detex
Затем запускаю вторую функцию и ничего. Вычитает только один раз до 0.9, а дальше не хочет.
В пример минусует пока страничку не перезагрузишь...
Ответить с цитированием
  #7 (permalink)  
Старый 01.03.2011, 16:10
Интересующийся
Отправить личное сообщение для Detex Посмотреть профиль Найти все сообщения от Detex
 
Регистрация: 01.03.2011
Сообщений: 14

Ваш пример тоже не работает, но Вы навели меня на правильную мысль, а именно, видимо, в onClick нельзя объявить переменную (например: onClick(var setIN=setInterval(...))).
Я объявил её в скрипте и всё заработало. Спасибо за помощь.

Последний раз редактировалось Detex, 01.03.2011 в 16:13.
Ответить с цитированием
  #8 (permalink)  
Старый 01.03.2011, 16:46
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Detex
Ваш пример тоже не работает
это вообщето твой пример до кучи собраный
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не получается передать переменную из JS в PHP Lion_astana AJAX и COMET 2 23.11.2010 17:23
запомнить переменную js в одном файле и использовать в другом. как? skalka Общие вопросы Javascript 2 28.09.2010 08:19
Шахматы JS (способы реализации) bass_x Элементы интерфейса 1 07.03.2010 21:36
помогите задать переменную в js bsgroupua Общие вопросы Javascript 3 01.02.2010 18:28
Самая лучшая книга по JS? ulandj Оффтопик 2 06.04.2009 11:35