除了一件事之外,以下情况很有效。我希望JS能够确定子项或“下一个”DOM元素是否为空而不会触发。
代码是:
Event.observe(document, 'dom:loaded', function() {
$$('#leftnav li a').each(function(element) {
Event.observe(element, 'click', function(event){
Event.stop(event);
Event.element(event).next(0).toggle();
Event.element(event).up(0).toggleClassName('active');
},
false);
});
});
因此,如果没有嵌套的“UL”,请不要开火。当我试图将其分解为if if时,无论如何它似乎都会失败。
想法或建议?
感谢!
答案 0 :(得分:2)
假设您的HTML看起来像这样:
<div id="leftnav">
<ul>
<li>
<a>Section A</a>
<ul>
<li>
<a>Subsection A.1</a>
</li>
</ul>
</li>
<li>
<a>Section B</a>
</li>
</ul>
</div>
我认为以下javascript将完成扩展或压缩嵌套列表:
Event.observe(document, 'dom:loaded', function()
{
$$('#leftnav li a').each(function(anchor)
{
anchor.observe('click', function(e)
{
e.stop();
var el = e.element();
var next = el.next('ul');
if (next)
{
next.toggle();
}
el.up('li').toggleClassName('active');
});
});
});