Javascript.RU

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

Событие запускается со второго клика
не могу понять почему фукнция работает только со второго клика

<a href="javascript:void" onclick="showAdd();">Показать дополнительные поля</a><br>

<div id="add_tables" >

это блок

</div>


function showAdd() {if (document.getElementById("add_tables").style.display == "none") {document.getElementById("add_tables").style.display = "block";} else {document.getElementById("add_tables").style.display = "none";} }
Ответить с цитированием
  #2 (permalink)  
Старый 10.08.2011, 14:21
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

<a href="javascript:void" onclick="showAdd(); return false;">Показать дополнительные поля</a><br>
Ответить с цитированием
  #3 (permalink)  
Старый 10.08.2011, 14:27
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 12,873

Сообщение от sympler
почему фукнция работает только со второго клика
Условие поменяй...

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
#add_tables {
	display: none;
}
</style>
<script type="text/javascript">
function showAdd() {
	var o=document.getElementById("add_tables")
	if (o.style.display == "block") {
		o.style.display = "none";
	} else {
		o.style.display = "block";
	} 
}
</script>
</head>
<body>
<a href="javascript:void" onclick="showAdd();">Показать дополнительные поля</a>
<br />
<div id="add_tables">
	это блок
</div>
</body>
</html>


Первый раз нужное тебе значение = пусто...
Ответить с цитированием
  #4 (permalink)  
Старый 10.08.2011, 14:32
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от ksa
Первый раз нужное тебе значение = пусто...
все у него с условием норм, то что оно пустое это говорит о том что оно отображается, но если оно скрыто, то 100% имеет значение none, а проверять на присутствие block не рекомендуется, потому как оно может иметь значение отличное от block, а значение none всегда стоит в случае если элемент скрыт даже свойствами css
Ответить с цитированием
  #5 (permalink)  
Старый 10.08.2011, 14:35
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 12,873

Сообщение от devote
если оно скрыто, то 100% имеет значение none
Бивас тест...

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
#add_tables {
	display: none;
}
</style>
<script type="text/javascript">
function showAdd() {
	var o=document.getElementById("add_tables")
	alert(o.style.display)
	if (o.style.display == "none") {
		o.style.display = "block";
	} else {
		o.style.display = "none";
	} 
}
</script>
</head>
<body>
<a href="javascript:void" onclick="showAdd();">Показать дополнительные поля</a>
<br />
<div id="add_tables">
	это блок
</div>
</body>
</html>


Никакого none...

Сообщение от devote
а проверять на присутствие block не рекомендуется, потому как оно может иметь значение отличное от block
Это кто такое сказал?
У автора только два значения
- block
- none
Ответить с цитированием
  #6 (permalink)  
Старый 10.08.2011, 14:36
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от ksa
Это кто такое сказал?
да яж образно, что бы в будущем прог знал что стоит придерживаться того а не того.
Ответить с цитированием
  #7 (permalink)  
Старый 10.08.2011, 14:38
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 12,873

Сообщение от devote
что бы в будущем прог знал что стоит придерживаться того а не того
Несогласный я...
Ответить с цитированием
  #8 (permalink)  
Старый 10.08.2011, 14:41
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от ksa
Никакого none...
Да видимо я попутал с тем когда вводишь display: none; в в атрибуте style="" хотя конечно лучше юзать currentStyle или computedStyle (FF) там четко стоит то что нужно
Ответить с цитированием
  #9 (permalink)  
Старый 10.08.2011, 14:44
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от ksa
Несогласный я...
Гогда начнешь писать какой нить фреймфорк или плаг где тебе не будет извесно значение элемента по умолчанию, тогда согласишься и будешь проверять на значение none.
Ответить с цитированием
  #10 (permalink)  
Старый 10.08.2011, 14:54
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 12,873

devote, я буду проверять на значение которое сам буду прописывать. А не то какое стоит в стилях...

Последний раз редактировалось ksa, 10.08.2011 в 15:01.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно подавить событие при подключении своего обработчика? Маэстро Firefox/Mozilla 2 03.09.2011 10:46
функция внутри Live() срабатывает после второго клика Ad1r jQuery 7 09.08.2011 13:11
jQuery: событие по второму подрят клику timyrio Общие вопросы Javascript 23 02.05.2011 00:11
событие клика не на input-элементе czar jQuery 4 09.04.2009 03:50
какое событие возникает во время формирования html IT-AleX Events/DOM/Window 2 20.02.2009 15:13