Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   проблема со скриптом разворачивающегося меню (https://javascript.ru/forum/misc/12715-problema-so-skriptom-razvorachivayushhegosya-menyu.html)

Hosi 30.10.2010 05:28

проблема со скриптом разворачивающегося меню
 
Доброго времени суток. Прошу прощения за ламерский вопрос, это мой первый опыт работы со скриптами и html.

Скрипт я взяла из сети.
Суть проблемы: При нажатии на кнопку "Культура" разворачивается список кнопки "Религия Японии". А нужно, чтобы разворачивался список той кнопки, на которую щелкают.

<script><!--
function Sim_Sim_Otkroysya()
{
var obj=document.getElementById('Sim_Sim');
if(obj.style.display=='none')
obj.style.display='block';
else
obj.style.display='none';
}

function chg(id,chk){
var el = document.getElementById(id);
var ch = document.getElementById(chk);
if (el.src.indexOf("down.gif")>0){
el.src="up.gif"
ch.checked="true";
}else{
el.src="down.gif"
ch.checked="";
}
}
--></script>
  <tr>
    <td height="23" valign="top"> 
<div><a href='javascript: Sim_Sim_Otkroysya()'>
<div id="img_1" onClick="chg(this.id,'check')"><font color="black">Религия Японии</font></div></a></div>
<div name=Sim_Sim id=Sim_Sim style='text-indent:12pt;display:none'>
<ul>
<li><a href="#"><font color="black">1</font></a>
<li><a href="#"><font color="black">2</font></a>
<li><a href="#"><font color="black">3</font></a>
<li><a href="#"><font color="black">4</font></a>
</ul>
</div></td>
  </tr>
    <tr>
    <td height="23" valign="top"> 
<div><a href='javascript: Sim_Sim_Otkroysya()'>
<div id="img_1" onClick="chg(this.id,'check')"><font color="black">Культура</font></div></a></div>
<div name=Sim_Sim id=Sim_Sim style='text-indent:12pt;display:none'>
<ul>
<li><a href="#"><font color="black">1</font></a>
<li><a href="#"><font color="black">2</font></a>
<li><a href="#"><font color="black">3</font></a>
<li><a href="#"><font color="black">4</font></a>
</ul>
</div></td>

Gvozd 30.10.2010 07:13

Цитата:

Сообщение от Hosi
Скрипт я взяла из сети.

не самый лучший способ для старта изучения этого языка
Цитата:

Сообщение от Hosi
var obj=document.getElementById('Sim_Sim');

передавайте в Sim_Sim_Otkroysya() параметр, указывающий id элемента для дальнейшей работы.

И, да, кстати:
id должен быть уникальным в пределах документа.
я у вас вижу два абсолютно одинаковых куска HTML, что абсолютно неверно

Hosi 31.10.2010 07:34

Цитата:

Сообщение от Gvozd
передавайте в Sim_Sim_Otkroysya() параметр, указывающий id элемента для дальнейшей работы.

И, да, кстати:
id должен быть уникальным в пределах документа.
я у вас вижу два абсолютно одинаковых куска HTML, что абсолютно неверно

04 var obj=document.getElementById('Sim_Sim');
27 <div name=Sim_Sim id=Sim_Sim style='text-indent:12pt;display:none'>

это должно совпадать, я правильно поняла?
скрипт нужно к каждому диву свой?
я ничерта не понимаю. целый вечер над этим билась. и так, и так пыталась. не получается. объясните, пожалуйста, подробнее. >__<

monolithed 31.10.2010 12:40

Цитата:

Сообщение от Hosi
Скрипт я взяла из сети.

Откуда вы эту мерзость только берете?!;)

Цитата:

Сообщение от Hosi
это мой первый опыт работы со скриптами и html.

мне кажется вы лукавите

Все же проще не куда:
<style type="text/css">
#menu ul {display: none;}
</style>

<div id="menu">
    <div>
        <a href="#">link1</a>
        <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
        </ul>
    </div>
    
    <div>
        <a href="#">link2</a>
        <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
        </ul>
    </div>
</div>

<script type="text/javascript">
window.onload = function(){
var div = document.getElementById('menu').getElementsByTagName('div');
    
    for(i=0; i<div.length; i++){
        (function(i){
            document.getElementsByTagName('a')[i].onclick = function(){
                var ul = document.getElementsByTagName('ul')[i];
                ul.style.display = (ul.style.display == 'block') ? '' : 'block';
            }
        })(i); 
    }
};
</script>


PS: Но на будущее запомните не нужно сюда нести помои откуда попало

Hosi 02.11.2010 02:41

Цитата:

Сообщение от monolithed
мне кажется вы лукавите

нет) на днях в голову пришло написать сайт. открыла гугл, открыла порограмку и пошло дело..)
Цитата:

Сообщение от monolithed
Все же проще не куда:

спасибо! лучей добра тебе, все заработало =)
Цитата:

Сообщение от monolithed
PS: Но на будущее запомните не нужно сюда нести помои откуда попало

учту =)

vladlen 02.11.2010 03:08

А можно совсем ламерский вопрос: нахрена эту чушь на JS делать? Вроде нас уже одарили хренью с аббревиатурой CSS


Часовой пояс GMT +3, время: 15:23.