Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 13.03.2009, 16:04
Интересующийся
Отправить личное сообщение для Cylos Посмотреть профиль Найти все сообщения от Cylos
 
Регистрация: 12.03.2009
Сообщений: 18

Не бюро так не бюро. Значит найду не бюро, но все же место где мне помогут.
Ответить с цитированием
  #22 (permalink)  
Старый 14.03.2009, 02:02
Интересующийся
Отправить личное сообщение для Cylos Посмотреть профиль Найти все сообщения от Cylos
 
Регистрация: 12.03.2009
Сообщений: 18

Народ что-то везде пассивный какой-то, решил попробовать написать сам.
Вот что вышло. Только скрипт вобще перестал работать, не показывает не скрывает!

<script type="text/javascript">
	
	function showHideAnswer()
	{
		var numericID = this.id.replace(/[^\d]/g,'');
		var obj = document.getElementById('a' + numericID);
		if(obj.style.display=='block'){
			
			obj.style.display='none';
		}else{

			per.style.display='none'
			obj.style.display='block';
			var per = document.getElementById('a' + numericID);

		}		
	}
	
	
	function initShowHideContent()
	{
		var divs = document.getElementsByTagName('DIV');
		for(var no=0;no<divs.length;no++){
			if(divs[no].className=='question'){
				divs[no].onclick = showHideAnswer;
			}	
			
		}	
	}
	
	window.onload = initShowHideContent;
</script>

Последний раз редактировалось Андрей Параничев, 14.03.2009 в 03:07. Причина: Пользуйтесь bb-тегами [js] и [html] для оформления листингов кода в теле сообщения
Ответить с цитированием
  #23 (permalink)  
Старый 14.03.2009, 03:16
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

ну, наконец-то я дождался от тебя еще олной попытки сделать самому.
Молодец!
теперь, показываю как это надо чтобы заработало:
Код:
function showHideAnswer()
{
var numericID = this.id.replace(/[^\d]/g,'');
var obj = document.getElementById('a' + numericID);
if(obj.style.display=='block'){

obj.style.display='none';
}else{

if(window.per!=undefined)
per.style.display='none'
obj.style.display='block';
per = document.getElementById('a' + numericID);
} 
}
поясняю:
window - глобальный объект, видимый везде.
его свойства и являются глобальными переменными, также видимые везде.
правда имена переменных могут замещатся локальной областью видимости, но это отдельная тема
обратившись к глобальной переменной, через window.per не будет выпадать ошибка, даже если переменная еще не создана.
а вот, без window, скрипт может упасть в случае отстутствия этой переменной в какой-либо области видимости.
кроме как для проверки, window.per здесь применять необязательно.
главное не напиши var, как ты написал.
это создает локальную область видимости
Ответить с цитированием
  #24 (permalink)  
Старый 14.03.2009, 10:09
Интересующийся
Отправить личное сообщение для Cylos Посмотреть профиль Найти все сообщения от Cylos
 
Регистрация: 12.03.2009
Сообщений: 18

Я так понял скрипт не работал, из-за "пустого" per.style.display ?
Ответить с цитированием
  #25 (permalink)  
Старый 14.03.2009, 10:19
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

1)несуществующий per.style.display, и непроверенный
2)неправильное назначение области видимости.если использовать var, то переменная принадлежит только локальной области видимости, и после завершения функции ее значение в данном случае теряется. без var переменная назначается глобальной области видимости
Ответить с цитированием
  #26 (permalink)  
Старый 14.03.2009, 12:34
Интересующийся
Отправить личное сообщение для Cylos Посмотреть профиль Найти все сообщения от Cylos
 
Регистрация: 12.03.2009
Сообщений: 18

Понятно. Спасибо за помощь!
Ответить с цитированием
  #27 (permalink)  
Старый 14.03.2009, 12:36
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

пожалуйста.
я рад, что вы все-таки сделали попытку самостоятельного решения задачи
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Остановить выполнение скрипта Nonam Общие вопросы Javascript 22 04.05.2009 01:45
изменение переменной Ilja_ORDY Общие вопросы Javascript 3 09.09.2008 18:56
Динамическое изменение <input text> baal1988 Events/DOM/Window 4 24.08.2008 17:17
Динамическое изменение размеров изображения Макс Элементы интерфейса 7 21.07.2008 16:55
Простой вопрос - надо из скрипта перейти на ссылку Brother Общие вопросы Javascript 1 27.02.2008 09:50