0

我找到了一个关于 css 技巧的教程来制作一个简单的手风琴。

http://css-tricks.com/snippets/jquery/simple-jquery-accordion/

我注意到这并不是真正基于导航,但我可以看到它是如何工作的,所以我做了一些简单的调整以使其与无序列表导航菜单一起工作。但当时,即使我让动画运行得很好,但我没有意识到这会破坏实际的锚点点击事件。

var allPanels = $('.sub-menu').hide();

$('li.menu-item a').click(function() {
    allPanels.slideUp();
    $(this).parent().find('ul').slideDown();
    return false;
});

请参阅我创建的用于演示问题的jsfiddle 。

http://jsfiddle.net/Yj4px/2/

如您所见,所有链接都已失效,只需激活脚本即可。

我真的很感激任何指示,因为我正在努力解决这个问题。我真的很想不惜一切代价避免使用 jquery 插件。提前致谢。


猜测一下,脚本只需要运行li.menu-item包含一个ul- 我无法添加类,因为菜单将由 cms 动态生成,并且可以随时更改。所以脚本需要自己运行。

4

2 回答 2

3

从你的函数中删除return false;,它会很好用。

于 2012-06-18T21:26:17.460 回答
1

return false仅当<a>标签不是直接链接或浏览器仍希望返回页面顶部时才需要

href将具有面板的手风琴标题更改为“#”。重定向链接将与以下“IF”一起正常工作,手风琴也将正常工作

$('li.menu-item a').click(function() {
    if($(this).attr('href')=="#"){
        allPanels.slideUp();
        $(this).parent().find('ul').slideDown();
        return false;
    }
});

在您的服务器代码中添加一个“活动”类以链接需要打开的面板(将 href 与 url 匹配)在页面加载时

$('a.active').closest('ul').slideDown()
于 2012-06-18T21:41:17.507 回答