1

我使用 joomla 1.6.4 安装并在我的主题中有一个自定义 css/javascript 下拉菜单。菜单 (ul) 的主根元素的 id 为“topnav”。当用户单击其中一个 (li) 菜单项时,它会更改为 class 以将其显示为选中并下拉一行子菜单(嵌入 span)。在执行此操作之前,它会使用迭代从所有其他 li 元素中删除此类。当我在一个最小的 html 页面中测试它时,这工作正常,但是在 Joomla 中,下拉菜单永远不会消失,就好像样式没有改变一样。单击 li 孩子时,肯定会调用此代码:

function SetSelected(id)
{
    var obj = document.getElementById('topnav');
    for ( var count = 0; count < obj.childNodes.length; count++ )
    {
        if(obj.childNodes[count].nodeName.toLowerCase() == 'li')
        {
            $(obj.childNodes[count]).removeClass('clickedstate');   
        }
    }
    $(id).addClass('clickedstate');
    return;
}

根据 jQuery 的 hasClass 方法(以及我的代码单步执行),看起来好像类被删除了,但元素似乎没有更新。joomla会以某种方式干扰这个吗?

快把我逼疯了!谢谢

4

1 回答 1

0

你为什么不尝试使用

    $(obj).children().each(function (index) {
       if ($(this).nodeName.toLowerCase() == 'li')
       {
           $(this).removeClass('clickedstate');
       }
    });
于 2011-07-11T02:03:05.833 回答