-
[JS] Rozwijane menu
Mam problem ze zrobieniem zwijanego/rozwijanego menu po kliknięciu, póki co chciałem dodać do linków zdarzenie onClick zwijające menu, ale nie chce to za cholere działać - nie wykrywa mi listy pod spodem, jakby jej nie było, a przecież <li> w którym znajduje się link zawiera <ul> i jest to lastChild tego <li>.
Gdzie jest błąd w moim rozumowaniu :/?
Kod:
window.onload = function()
{
var link = document.getElementsByName("rozwin");
for( var i in link )
{
link[i].onclick = function()
{
$(this.parentNode.lastChild).hide();
};
}
}
Kod HTML:
<ul class="menu">
<li>
<a name="rozwin" href="#"> Menu1 </a>
<ul name="submenu">
<li> opcja1 </li>
<li> opcja2 </li>
<li> opcja3 </li>
</ul>
</li>
<li>
<a name="rozwin" href="#"> Menu2 </a>
<ul name="submenu">
<li> opcja1 </li>
<li> opcja2 </li>
<li> opcja3 </li>
<li> opcja4 </li>
<li> opcja5 </li>
<li> opcja6 </li>
<li> opcja7 </li>
<li> opcja8 </li>
</ul>
</li>
<li>
<a name="rozwin" href="#"> Menu3 </a>
<ul name="submenu">
<li> opcja1 </li>
<li> opcja2 </li>
<li> opcja3 </li>
<li> opcja4 </li>
</ul>
</li>
</ul>
-
do szablonu dodaj:
Kod PHP:
<script type="text/javascript" src="js/showhide.js"></script>
showhide.js
Kod PHP:
function op(obj) {
x=document.getElementById(obj);
$(x).slideToggle( "slow" );
}
W kodzie:
Kod PHP:
<button class="medium" onClick="op('poka');">Show all</button>
<ul class="icons">
<li><i class="icon-ok"></i>hahahahysbsdgsdgsgsdg</li>
<div id="poka" style="display: none;">
<li><i class="icon-ok"></i>Tekst do pokazania</li>
</div>
Na szybciutko skopiowałem ze swojego projektu.
-
Już sobie poradziłem, jak się okazało zamiast lastChild trzeba było użyć lastElementChild i wszystko działa jak należy.