Просмотр полной версии : Событие запускается со второго клика
не могу понять почему фукнция работает только со второго клика
<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";} }
<a href="javascript:void" onclick="showAdd(); return false;">Показать дополнительные поля</a><br>
почему фукнция работает только со второго клика
Условие поменяй...
<!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>
Первый раз нужное тебе значение = пусто...
Первый раз нужное тебе значение = пусто...
все у него с условием норм, то что оно пустое это говорит о том что оно отображается, но если оно скрыто, то 100% имеет значение none, а проверять на присутствие block не рекомендуется, потому как оно может иметь значение отличное от block, а значение none всегда стоит в случае если элемент скрыт даже свойствами css
если оно скрыто, то 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... :)
а проверять на присутствие block не рекомендуется, потому как оно может иметь значение отличное от block
Это кто такое сказал? :blink:
У автора только два значения
- block
- none
Это кто такое сказал?
да яж образно, что бы в будущем прог знал что стоит придерживаться того а не того.
что бы в будущем прог знал что стоит придерживаться того а не того
Несогласный я... :no:
Никакого none...
Да видимо я попутал с тем когда вводишь display: none; в в атрибуте style="" хотя конечно лучше юзать currentStyle или computedStyle (FF) там четко стоит то что нужно
Несогласный я...
Гогда начнешь писать какой нить фреймфорк или плаг где тебе не будет извесно значение элемента по умолчанию, тогда согласишься и будешь проверять на значение none.
devote, я буду проверять на значение которое сам буду прописывать. :) А не то какое стоит в стилях...
Условие поменяй...
<!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>
Первый раз нужное тебе значение = пусто...
странно.. все один в один...
только не в одном файле а в разных css, js, html
ну и переменную "o" не использую. разве есть разница? (за исключением более быстрой обработки и меньшей длины кода)
блок по умолчанию скрыт... display:none прописан в отдельном файле css
но скрипт работает с первого раза только при использовании
<div id="add_tables" style="display:none;">
странно.. все один в один...
У меня условие не такое как у тебя в примере...
блок по умолчанию скрыт... display:none прописан в отдельном файле css
Потому-то его "первое" значение для тебя "" (пусто), а не none, как ты ожидаешь... ;)
но скрипт работает с первого раза только при использовании
<div id="add_tables" style="display:none;">
Вот тогда "первое" значение действительно none. :yes:
и переменную "o" не использую. разве есть разница?
Текста меньше - уже хорошо. :write:
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot