DOM és style.display
Üdv Mindenkinek,
olyan kérdésem lenne, hogy van egy treeview kezdeményem, amely ul /li -ből épül fel és szeretném az egyes elemek esetében az li-ben található első ul-t eltűntetni?
Próbálkoztam DOM-mal, de nem igazán sikerült:
Javascript:Nem igazán tudom hol rontom el, esetleg valami segítséget tudtok adni?
Kösz
bsanyi
■ olyan kérdésem lenne, hogy van egy treeview kezdeményem, amely ul /li -ből épül fel és szeretném az egyes elemek esetében az li-ben található első ul-t eltűntetni?
Próbálkoztam DOM-mal, de nem igazán sikerült:
Javascript:
<script language="Javascript">
function expand(value) {
var currentItem = value;
for (var i=0; i<currentItem.childNodes.length; i++) {
if (currentItem.childNodes[i].nodeName == 'UL') {
//alert(currentItem.childNodes[i].style.display);
if (currentItem.childNodes[i].style.display == 'block') {
currentItem.childNodes[i].style.display = '';
} else {
currentItem.childNodes[i].style.display = 'block';
}
}
//alert(currentItem.childNodes[i].nodeName);
}
}
</script>
<body>
<ul class="tv_container">
<li class="tv_item_open_exp" onclick="expand(this)"><div class="text_middle_open">Első elem</div>
<ul class="tv_container tv_container_inner">
<li class="tv_item_open_exp" onclick="expand(this)"><div class="text_middle_open">Második elem</div>
<ul class="tv_container tv_container_inner">
<li class="tv_item">Második elem</li>
<li class="tv_item">Második elem</li>
<li class="tv_item">Második elem</li>
<li class="tv_item">Második elem</li>
</ul>
</li>
<li class="tv_item_close_exp" onclick="expand(this)"><div class="text_middle_close">Második elem</div>
<ul class="tv_container tv_container_inner">
<li class="tv_item">Istentelen</li>
</ul>
</li>
</ul>
</li>
<li class="tv_item_close_exp" onclick="expand(this)"><div class="text_middle_open">Harmadik elem</div>
<ul class="tv_container tv_container_inner">
<li class="tv_item">Negyedik elem</li>
</ul>
</li>
</ul>
</body>
Kösz
bsanyi
css lemaradt
re
Bubbling
currentItem.childNodes[i].style.display = 'none';
Majd utána az esemény bubbling miatt meg kell akadályozni, hogy a a click továbbítódjon a szűlőobjektumoknak:
1. A script:
onclick="expand(this,event)" //itt a plusz a ",event"
Köszönöm
A végeredmény egy kicsit más lett, mert osztályt is kellett változtatnom, de azt hiszem, most megint tanultam egy csomót.
Igen ez a != és == összahasonlító operátorok sokx megszivatnak engem, ideje lenne megtanulni rendesen használni őket :-)
Üdv
bsanyi