Javascript.RU

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

Глобальные переменные отлынивают
Есть div с 3-мя полями input и одной кнопкой. Изначально невидимые, они появляются, если кликнуть на div'е. По заполнению инпутов всё это добро (по идее) исчезает, если кликнуть на кнопке. Адрес нужного дива ловлю следующим образом (внимание на глобальную, вроде бы, переменную tekItem)
<script type="text/javascript" charset="windows-1251;">
	tekItem;
	function activatron(tekElem)
	{
		tekItem = tekElem;
		var otkryvashka = new Array();
		otkryvashka = tekElem.getElementsByTagName('input');
		for(i=0;i<3;i++)
		{
			otkryvashka[i].style.display = 'block';
		}
		tekElem.getElementsByClassName('buttonka')[0].style.display = 'block';
		
	}
	
	function utverd()
	{
		var tekElem = tekItem;
		var zakryvashka = new Array();
		zakryvashka = tekElem.getElementsByTagName('input');
		for(i=0;i<3;i++)
		{
			zakryvashka[i].style.display = 'none';
		}
		tekElem.getElementsByClassName('buttonka')[0].style.display = 'none';
	}
</script>


на конпку навешена функция utverd(). Функцию activatron() запускаю в диве по onClick="...", передавая в неё 'this'.


Незадача: добро не исчезает...

Последний раз редактировалось kukuyok, 12.09.2010 в 15:25.
Ответить с цитированием
  #2 (permalink)  
Старый 11.09.2010, 23:34
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от kukuyok
getElementsByClassName
это что такое?)
или вернее сказать, с чего вы решили что это будет работать во всех браузерах?
Ответить с цитированием
  #3 (permalink)  
Старый 12.09.2010, 00:11
Аватар для kukuyok
Интересующийся
Отправить личное сообщение для kukuyok Посмотреть профиль Найти все сообщения от kukuyok
 
Регистрация: 11.09.2010
Сообщений: 23

Гммм... гмммм... нафантазировал, а потом ещё и нагуглил

...правда ваша - FF, Opera да Chrome за милую душу уминают, IE - как всегда: не жриот...

Лады. Переведу её на id. Но вопрос-то, похоже, совсем не в этом... Как тут с глобальными переменными обстоит? По науке ли я тут требую от них помнить и чтить?
Ответить с цитированием
  #4 (permalink)  
Старый 12.09.2010, 10:11
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

function toggle() {
	var t = document.getElementById( 'area' ).style;
	t.display = t.display == 'none' ? '' : 'none';
}


Оберните кнопки ещё в один DIV.
Эту функцию вешайте на onclick внешнего DIV'-а и кнопки. Всем инпутам уберите display: none. В атрибуте style внутреннего DIV'-а пропишите display: none.
Ответить с цитированием
  #5 (permalink)  
Старый 12.09.2010, 15:01
Аватар для kukuyok
Интересующийся
Отправить личное сообщение для kukuyok Посмотреть профиль Найти все сообщения от kukuyok
 
Регистрация: 11.09.2010
Сообщений: 23

exec

'area' - это, я так понимаю, тот самый обёрточный div..? Да, вариант хороший, но у меня проблемы с позиционированием... в общем, код тела таков:

<div class="itemka" id="it01" style="z-index:99;" onclick="activatron(this);">
    <div class="avtomodel">
        <input type="textarea" id="am01" class="am_pole" value="Модель автомобиля" onfocus="select();" />
        Модель автомобиля
    </div>
        
    <div class="modchar">
        <input type="textarea"id="gp01" class="am_pole" value="Грузоподъёмность" onfocus="select();" />
        Грузоподъёмность	
    </div>
        
    <div class="bashlat">
        <input type="textarea" id="st01" class="am_pole"  value="Стоимость" onfocus="select();" /> 
        Стоимость    
    </div>
            
    <div class="buttonka">
        <input type="button" id="bt01" value="ОК" style="" onclick="utverd();" />     
    </div>
</div>


По-хорошему, ваше предложение - лишь оптимизация кода. И ей быть - но только после того, как мне станет понятно, почему не работает то, что, по-моему, должно работать. Да. Ещё раз - к сути вопроса. К теме. Глобальные. Переменные. Почему не работает?
Ответить с цитированием
  #6 (permalink)  
Старый 12.09.2010, 15:07
Аватар для kukuyok
Интересующийся
Отправить личное сообщение для kukuyok Посмотреть профиль Найти все сообщения от kukuyok
 
Регистрация: 11.09.2010
Сообщений: 23

Есть предположение, что ответ прост: после выполнения скрипта в хедаре глобальниые переменные из него нивелируются...
Ответить с цитированием
  #7 (permalink)  
Старый 12.09.2010, 15:34
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от kukuyok
после выполнения скрипта в хедаре глобальниые переменные из него нивелируются...
глупость написал.
Сообщение от kukuyok
Глобальные. Переменные. Почему не работает?
Глобальные. Переменные. Работают.

И разбираться за вас, что вы такого намудрили никто не станет
Поставьте фаербаг, и отлаживайте ваш код.
Так все делают, и с чего бы кто-то должен был за вас по кускам собирать ваш неработающий пример, чтобы узнать из-за какой гулпости он у вас не работает
Ответить с цитированием
  #8 (permalink)  
Старый 12.09.2010, 21:25
Аватар для kukuyok
Интересующийся
Отправить личное сообщение для kukuyok Посмотреть профиль Найти все сообщения от kukuyok
 
Регистрация: 11.09.2010
Сообщений: 23

Пардон за настойчивый тон. Все предлагают оптимизацию кода, но никто не отвечает на вопрос. Вопрос поверхностный и не требует вдумываться в код. Никто не сказал, что моё представление о ходе выполнения скрипта верно или неверно (я ламер, СИшник). Попробую ещё раз, конкретней:


После загрузки html-документа в браузер выполняется его интерпретация, дело доходит до скриптов. В скрипте заводится глобальная переменная, где-то, используется, где-то меняется... бла-бла-бла... интерпретировали скрипт, отобразили страницу, молодцы. Когда я захочу баттоном обратиться к функции из этого скрипта - застану ли я глобальную переменную в её последнем по выполнению скрипта состоянии?

P.S.: как-то сложно, наверное, но пока не сориентировался, 2-й день ковыряюсь - засим плету, как могу

P.P.S.: глупость_написал.info == NULL
Ответить с цитированием
  #9 (permalink)  
Старый 12.09.2010, 22:22
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

kukuyok,
Когда вы написали
activatron(this);

вы передали элемент
<div class="itemka" id="it01" style="z-index:99;" onclick="activatron(this);">
функции activatron

так вот вопрос - вы где так писать учились?
tekElem.getElementsByTagName('input');
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #10 (permalink)  
Старый 12.09.2010, 22:29
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

ps: exec вам дело говорит, а то у вас код жуткострашный получается пока.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести все пост переменные PHP mycoding Серверные языки и технологии 4 21.06.2010 21:52
iframe не выносит переменные nemo Серверные языки и технологии 0 23.01.2010 14:25
Помогите разбить строку входящих данных на 2 переменные freefly Общие вопросы Javascript 3 18.01.2010 01:56
JavaScript Глобальные переменные MixMe Javascript под браузер 1 12.07.2009 14:04
переменные и ссылки на переменные scuter Общие вопросы Javascript 6 31.08.2008 01:24