|
|
|
| Требуется вывести блок, после нажатия на строку текста. В JS не разбираюсь пока, как это сделать?
Спасибо. | |
|
|
|
|
|
|
|
для: Mookapek
(07.10.2008 в 21:31)
| | Название темы, похоже является основным механизмом в решении Вашей задачи. Но как бы то ни было, Ваш вопрос требует более детального описания, ибо не совсем ясно, как Вы видите результат работы скрипта.
>Требуется вывести блок
Что вы подразумеваете под словом "вывести": сделать так, чтобы блок добавился в тело документа или отобразить отдельное сообщение с текстом этого блока? Что Вы называете блоком? Блок текста или блочный контейнер, например DIV?
>после нажатия на строку текста
Строка текста - это набор символов между левой и правой границей или просто какая-то фраза, например "Нажмите сюда, чтобы вывести блок"? | |
|
|
|
|
|
|
|
для: Nytrogen
(07.10.2008 в 21:41)
| | Есть форма для простого поиска, а надо еще раскрывающуюся форму для расширенного поиска.
<div>
Имя:<input type=text name=name>
<br>
<a href=''>Расширенный поиск</a>
</div>
<div id=fullsearch>
Фамилия:<input type=text name=surname>
</div>
|
При загрузке документа блок fullsearch не видно - он отображается только после нажатия на ссылку
"Расширенный поиск".
Я, руководствуясь своими скромными познаниями в JS, предполагаю, что в <a> надо поместить onclick="function()".
Вот только не знаю, как должна выглядеть функция и как скрыть <div id=fullsearch> до нажатия на
"Расширенный поиск". | |
|
|
|
|
|
|
|
для: Mookapek
(07.10.2008 в 21:56)
| | Так бы сразу и писали: конкретно и ясно.
<div>
Имя:<input type=text name=name>
<br>
<a href='javascript: void(0);' onclick="javascript: document.getElementById('fullsearch').style.visibility = 'visible';">Расширенный поиск</a>
</div>
<div id=fullsearch style="visibility: hidden;">
Фамилия:<input type=text name=surname>
</div>
|
| |
|
|
|
|
|
|
|
для: Nytrogen
(07.10.2008 в 22:07)
| | Спасибо!
А как сделать, чтобы при повторном нажатии на ссылку блок снова пропадал? Видимо условие надо применить? | |
|
|
|
|
|
|
|
для: Mookapek
(07.10.2008 в 22:22)
| | Тут будет муторно всё это в onclick писать... проще написать функцию, как Вы и хотели...
<script>
function switchVisibility() {
with (document.getElementById('fullsearch').style) {
//вот такая хитрая переключалка =)
visibility = visibility == 'hidden' ? 'visible' : 'hidden';
}
}
</script>
<div>
Имя:<input type=text name=name>
<br>
<a href='javascript: void(0);' onclick="switchVisibility();">Расширенный поиск</a>
</div>
<div id=fullsearch style="visibility: hidden;">
Фамилия:<input type=text name=surname>
</div>
|
Поскольку Вы - начинающий в JS, возможно Вас озадачит хитрый оператор ? :, который я применил в функции. Аналогом может послужить более понятная конструкция:
with (document.getElementById('fullsearch').style) {
if (visibility == 'hidden') {
visibility = 'visible';
} else {
visibility = 'hidden';
}
}
|
| |
|
|
|
|
|
|
|
для: Nytrogen
(07.10.2008 в 22:34)
| | Хм... а что такое "with"? | |
|
|
|
|
|
|
|
для: Mookapek
(07.10.2008 в 22:49)
| | Оператор with позволяет использовать в своём блоке один и тот же указанный объект, не указывая его название (включая полную иерархию его свойств). Все переменные, встречающиеся в блоке, будут заменяться соответственными свойствами.
Таким образом, без блока with приведённый код очень некрасиво увеличивается в размерах:
document.getElementById('fullsearch').style.visibility = document.getElementById('fullsearch').style.visibility == 'hidden' ? 'visible' : 'hidden';
|
| |
|
|
|
|
|
|
|
для: Nytrogen
(07.10.2008 в 23:02)
| | Ну и последний вопрос по теме: как сделать, чтобы при нажатии ссылки "Расширенный поиск" название ссылки изменялось на "Простой поиск"? | |
|
|
|
|
|
|
|
для: Mookapek
(10.10.2008 в 19:03)
| |
<a href='javascript: void(0);' onclick="switchVisibility(); this.innerHTML = this.innerHTML == 'Обычный поиск' ? 'Расширенный поиск' : 'Обычный поиск';">Расширенный поиск</a>
|
Лучше конечно вместо дописывания кода к onclick, присвоить ссылке ID и добавить в функцию switchVisibility
with (document.getElementById("anchorID")) {
innerHTML = innerHTML == 'Обычный поиск' ? 'Расширенный поиск' : 'Обычный поиск';
}
|
| |
|
|
|
|
|
|
|
для: Nytrogen
(13.10.2008 в 15:13)
| | Спасибо, Nytrogen! | |
|
|
|
|
|
|
|
для: Nytrogen
(13.10.2008 в 15:13)
| | . | |
|
|
|