Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.11.2013, 10:52
Аспирант
Отправить личное сообщение для Chekist Посмотреть профиль Найти все сообщения от Chekist
 
Регистрация: 31.10.2013
Сообщений: 38

Просьба подсказать
Доброго времени суток!
Прошу помощи найти ошибку в коде.
Цель:
1) Нажал на .check один раз - посчиталось значение переменной.
2) Нажал на .check еще раз - к уже известному значению добавилось новое.
http://jsfiddle.net/AdTg7/

Что происходит: всегда почему-то у меня s=undefined, и поэтому нет перехода к условию else......
Ответить с цитированием
  #2 (permalink)  
Старый 06.11.2013, 10:57
Аспирант
Отправить личное сообщение для Chekist Посмотреть профиль Найти все сообщения от Chekist
 
Регистрация: 31.10.2013
Сообщений: 38

Почему-то думаю, что переменная s теряется каждый раз при новом клике... это можно как-нибудь исправить? (сделать глобальной?)
Ответить с цитированием
  #3 (permalink)  
Старый 06.11.2013, 10:59
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

var s = 0;


Это локальная переменная. Она будет уничтожена по завершению работы функции. При последующем запуске функции никакой s существовать не будет. Таким образом else никогда не выполнится.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #4 (permalink)  
Старый 06.11.2013, 11:01
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Chekist, у тебя обе ветви кода одинаковые, в чем смысл создавать две одинаковые ветви?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 06.11.2013, 11:04
Аспирант
Отправить личное сообщение для Chekist Посмотреть профиль Найти все сообщения от Chekist
 
Регистрация: 31.10.2013
Сообщений: 38

Тогда как передать локальную переменную из функции в глобальную?
Чтобы каждый раз к ней же и прибавлять локальную
Ответить с цитированием
  #6 (permalink)  
Старый 06.11.2013, 11:13
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,122

Сообщение от Chekist
это можно как-нибудь исправить?
Как вариант...

alert(inc(1));
alert(inc(10));
alert(inc(20));
function inc(N) {
	this.s=this.s||0;
	this.s+=N;
	return this.s;
};
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Просьба помочь! dima*** Общие вопросы Javascript 0 10.02.2013 11:57
Просьба создать два раздела FINoM Сайт Javascript.ru 15 17.05.2012 18:06
Просьба помочь autocomplete, переменные dr83 jQuery 1 03.08.2011 15:31
Просьба покритиковать код stnw Ваши сайты и скрипты 1 10.02.2011 16:59
Просьба оценить виджет для сайтов igrok Ваши сайты и скрипты 2 05.01.2011 12:06