Jump to content
  • 0

Как показать\скрыть текст по клику?


LikeAPilot
 Share

Question

Есть страничка. В ней список названий. Нужно чтобы при клике на название в этой же страничке под ним показывался дополнительный текст. По повторному клику исчезал.

=========================

название1

название2 (клик)(при повторном клике все блаблабла пропадают)

блаблабла

блаблабла

блабла бла

название3

=========================

Подскажите пожалуйста.

Link to comment
Share on other sites

Recommended Posts

  • 0
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript">
function toggle_show(id) {
document.getElementById(id).style.display = document.getElementById(id).style.display == 'none' ? 'block' : 'none';
}
</script>
</head>
<body>

<ul>
<li>Название 1</li>
<li onClick="toggle_show('bla-bla2')">Название 2
<ul id="bla-bla2" style="display: none">
<li>Бла Бла Бла</li>
<li>Бла Бла Бла</li>
<li>Бла Бла Бла</li>
</ul>
</li>
<li>Название 3</li>
</ul>

</body>
</html>

Link to comment
Share on other sites

  • 0

у меня "стандартное решение" в заготовках выглядит так:

spoiler.js

function Show(x) {
document.getElementById('exp_' + x).style.display = 'none';
document.getElementById('col_' + x).style.display = 'inline';
document.getElementById('block_' + x).style.display = 'block';
}
function Hide(x) {
document.getElementById('exp_' + x).style.display = 'inline';
document.getElementById('col_' + x).style.display = 'none';
document.getElementById('block_' + x).style.display = 'none';
}

а в самом документе использую php-генерацию опять же шаблонной функцией:

<?php
// $link и $block массивы,
// первый - текст ссылки для разворачивания/сворачивания спойлера
// второй - содержимое собственно спойлерного блока
function make_spoiler($link,$block,$start) {
$out = '';
foreach($link as $i => $l) {
// ссылку для разворачивания спойлера
$out .= '<a id="exp_'.$start.'" class="spoiler_link" href="java script:Show('.$start.');">'.$link[$i].'</a>';
// а это для сворачивания
$out .= '<a id="col_'.$start.'" class="spoiler_link" href="java script:Hide('.$start.');" style="display:none;">'.$link[$i].'</a>';
// содержимое спойлера
$out .= '<div id="block_'.$start.'" class="spoiler" style="display:none;">'.$block[$i].'</div>';
// увеличиваем счетчик, чтоб айди были разными
$start++;
}
return $out;
}
?>

соответственно когда надо вставить спойлеры на страницу, загоняем в массив и на странице просто пишем

<?php echo(make_spoiler($link,$block,0)); ?>

при последующем вызове чтоб не запутаться сколько уже спойлеров создано ранее и не указать неверное стартовое значение, юзаем такую конструкцию:

<?php
// создание второго куска кода со спойлерами
$start = (sizeof($link) - 1); // но разумеется не переопределяем массив ссылок ранее этого
// заполняем массивы
$link = array( ... );
$block = array( ... );
// и снова вызываем
make_spoiler($link,$block,$start);
?>

Link to comment
Share on other sites

  • 0
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript">
function toggle_show(id) {
document.getElementById(id).style.display = document.getElementById(id).style.display == 'none' ? 'block' : 'none';
}
</script>
</head>
<body>

<ul>
<li>Название 1</li>
<li onClick="toggle_show('bla-bla2')">Название 2
<ul id="bla-bla2" style="display: none">
<li>Бла Бла Бла</li>
<li>Бла Бла Бла</li>
<li>Бла Бла Бла</li>
</ul>
</li>
<li>Название 3</li>
</ul>

</body>
</html>

такой вопрос, а как сделать, чтобы курсор менялся при наведении на "Название 2"

Link to comment
Share on other sites

  • 0

в 1м варианте когда нажимаешь на всякие бла-бла обратно сворачивается вся фишка:unsure: написалибы как исправить...

а в вариантах с ПхП и явой можно немного поподробнее, куда, что вставлять что вначале документа написать.

Edited by Nekromancer
Link to comment
Share on other sites

  • 0

вот хоть я этот код и стырил...

но он лучше всего помойму подходит...

<html>
<head>
<script language="JavaScript">
var SiteUrl = '/';
var ImgUrl = '/img/';

var MainShow = 0;

var Buttons = new Array();
Buttons[0] = new Image();
Buttons[1] = new Image();
Buttons[2] = new Image();
Buttons[3] = new Image();
Buttons[4] = new Image();
Buttons[0].src = ImgUrl+'menu_button.jpg';
Buttons[1].src = ImgUrl+'menu_button_over.jpg';
Buttons[2].src = ImgUrl+'31.jpg';
Buttons[3].src = ImgUrl+'search_button_over.jpg';
Buttons[4].src = ImgUrl+'menu2_bg.jpg';

function menu1click(id)
{
if (MainShow != id)
{
//close MainShow
if (MainShow != 0)
{
if (document.getElementById('m2_'+MainShow)) document.getElementById('m2_'+MainShow).style.display = 'none';
document.getElementById('m1_'+MainShow).style.backgroundImage="url("+ImgUrl+"menu_button.jpg)";
}
//open current
if (document.getElementById('m2_'+id)) document.getElementById('m2_'+id).style.display = '';
document.getElementById('m1_'+id).style.backgroundImage="url("+ImgUrl+"menu_button_over.jpg)";
MainShow = id;
}
else
{
//close MainShow
if (document.getElementById('m2_'+MainShow)) document.getElementById('m2_'+MainShow).style.display = 'none';
document.getElementById('m1_'+id).style.backgroundImage="url("+ImgUrl+"menu_button.jpg)";
MainShow = 0;
}
}

function menu1over(id)
{
if (MainShow != id) document.getElementById('m1_'+id).style.backgroundImage="url("+ImgUrl+"menu_button_over.jpg)";
document.getElementById('menu3_div').style.visibility = 'hidden';
return false;
}

function menu1out(id)
{
if (MainShow != id) document.getElementById('m1_'+id).style.backgroundImage="url("+ImgUrl+"menu_button.jpg)";
return false;
}

function menu2over(src, top, left)
{
document.getElementById('menu3_td').innerHTML = document.getElementById(src).innerHTML;
document.getElementById('menu3_div').style.visibility = 'visible';
document.getElementById('menu3_div').style.top=top+'px';
document.getElementById('menu3_div').style.left=left+'px';
return false;
}

function menu3clear()
{
document.getElementById('menu3_div').style.visibility = 'hidden';
return false;
}

function Registration()
{
open(SiteUrl+'account/create/', '', 'status=1, toolbar=0, resizable=0, scrollbars=1, width=1024, height=800');
return false;
}

function Login()
{
open(SiteUrl+'account/login/', '', 'status=1, toolbar=0, resizable=0, scrollbars=1, width=800, height=650');
return false;
}
</script>
</head>
<body>
<table width="156" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td id="m1_3" class="menu_button" width="156" valign="middle" height="27" align="center" onmouseout="return menu1out(3);" onmouseover="return menu1over(3);" style="background-image: url(/img/menu_button.jpg);">
<a class="menu_link" onfocus="this.blur();" onclick="menu1click(3); return false;" href="#">НОВОСТИ</a>
</td>
</tr>
<tr id="m2_3" style="display: none;">
<td width="156" valign="middle" align="left">
<table width="137" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td width="19" height="19"/>
<td class="menu_button2" width="137" valign="top" height="19" align="center">
<a class="menu_link2" href="#">ДАЙДЖЕСТ</a>
</td>
</tr>
<tr>
<td width="19" height="19"/>
<td class="menu_button2" width="137" valign="top" height="19" align="center">
<a class="menu_link2" href="#">СОБЫТИЯ</a>
</td>
</tr>
<tr>
<td width="19" height="19"/>
<td class="menu_button2" width="137" valign="top" height="19" align="center">
<a class="menu_link2" href="#">ОБНОВЛЕНИЯ</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td id="m1_6" class="menu_button" width="156" valign="middle" height="27" align="center" onmouseout="return menu1out(6);" onmouseover="return menu1over(6);">
<a class="menu_link" onfocus="this.blur();" onclick="menu1click(6); return false;" href="#">СООБЩЕСТВО</a>
</td>
</tr>
<tr id="m2_6" style="display: none;">
<td width="156" valign="middle" align="left">
<table width="137" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td width="19" height="19"/>
<td class="menu_button2" width="137" valign="top" height="19" align="center">
<a class="menu_link2" onclick="return false;" href="#">СТАТИСТИКА</a>
</td>
</tr>
<tr>
<td width="19" height="19"/>
<td class="menu_button2" width="137" valign="top" height="19" align="center">
<a class="menu_link2" onclick="return false;" href="#">КЛАНЫ</a>
</td>
</tr>
<tr>
<td width="19" height="19"/>
<td class="menu_button2" width="137" valign="top" height="19" align="center">
<a class="menu_link2" onclick="return false;" href="#">ФАН-САЙТЫ</a>
</td>
</tr>
<tr>
<td width="19" height="19"/>
<td class="menu_button2" width="137" valign="top" height="19" align="center">
<a class="menu_link2" onclick="return false;" href="#">РЕЙТИНГИ</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

</tbody>
</table>
</body>
</html>

тупо можно копирнуть и подстовлять текст и сслыки которые нужны.

Link to comment
Share on other sites

  • 0

надо будет помучать его:) что он может:))

мой код работает точно:)) просто скинь в какойто текстовый файл поменяй расширение на html

потом просто стили, картинки и таблица настрой под себя... это в хтил коде идёт а не в джава так что по идее очень просто

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy