Консультация № 159640
04.02.2009, 22:27
0.00 руб.
0 4 2
Доброго времени суток!!!
В приложении у меня код страницы html. На странице кнопка и блок с текстом. При нажатии на кнопку блок с текстом должен стать невидимым, а при повторном нажатии опять стать видимым. Никак немогу понять, почему код не работает. Вроде бы все правильно. Помогите пожалуйста.

Приложение:
<html>
<head>
<title>Страница</title>

<script language="JavaScript">
function v1() {
if (aa.visibility=="visible")
aa.visibility="hidden"
else
aa.visibility="visible"
}
</script>

</head>

<body>
<div style="name:aa; position:absolute; left:50%; top:50%; background:peachpuff; visibility:visible">Привет бродяги!!!</div>
<INPUT type="button" value="Подробнее..." onclick="v1()">
</body>

</html>

Обсуждение

Неизвестный
04.02.2009, 22:43
общий
это ответ
Здравствуйте, fomservl!
Исправляю Вам код. Смотрите приложение. Теперь должно заработать.

Проблема была в:
1) переменная aa не была инициализирована;
2) Вы пренебрегаете точками с запятой в конце строки;
3) Лучше нужному элементу присвоить значение атрибута id, а потом по этому значению его вызвать.

С уважением, Товарищ Бородин

Приложение:
<html>
<head>
<title>Страница</title>

<script language="JavaScript">
function v1() {
var aa = document.getElementById('aa').style;
if (aa.visibility=="visible")
aa.visibility="hidden";
else
aa.visibility="visible";
}
</script>

</head>

<body>
<div id="aa" style="position:absolute; left:50%; top:50%; background:peachpuff; visibility:visible">Привет бродяги!!!</div>
<INPUT type="button" value="Подробнее..." onclick="v1()">
</body>

</html>
Неизвестный
04.02.2009, 23:01
общий
Скажите, а где можно в инете почитать о инициализации переменных?
Неизвестный
05.02.2009, 05:24
общий
Что тут читать, господи прости! Пишете в том месте(ну или в начале программы):

var imyaPeremennoj = "Значение переменной";

Вы код ваще смотрели, который я Вам прислал? Два отличия нашли?
Неизвестный
05.02.2009, 06:40
общий
это ответ
Здравствуйте, fomservl!

1. в функции v1 к visibility надо обращаться через style
2. у объекта Div не может быть имени, но можно например достучаться до него из него самого, кликом по нему: onclick=v1(this), я добавил в код - если кликнуть по надписи, она исчезнет
0. в v1 лучше передавать объект через параметр

в приложении пример, вторая кнопка работает со ссылкой "ааа", первая выдаёт ошибку(если отладка включена, то видно)

бонус: в v1() через alert показывается результирующее состояние видимости

Приложение:
<html>
<head>
<title>Страница</title>

<script language="JavaScript">
function v1(v)
{
if (v.style.visibility=="visible")
v.style.visibility="hidden";
else
v.style.visibility="visible";
alert(v.style.visibility);
}
</script>

</head>

<body>
<a href=="." name="aaa" style="visibility:visible;">aaa</a>
<div name="aa" onclick=v1(this) style="position:absolute; left:50%; top:50%; background:peachpuff; visibility:visible;">Привет бродяги!!!</div>

<INPUT type="button" value="Подробнее..." onclick=v1(aa)>
<INPUT type="button" value="Подробнее-2..." onclick=v1(aaa)>
</body>

</html>
Форма ответа