当前位置: 首页 > 知识库问答 >
问题:

Menu-子菜单和ajax加载内容上的活动链接

阴阳
2023-03-14

我在菜单的活动项和切换的子菜单上有问题:当我点击“prensa”或“contacto”时,脚本将活动的well添加到菜单项中。例如,“prensa”获得激活,如果我点击“contacto”,它就会获得激活,将其从“prensa”中删除。

问题是,当我点击“艺术作品”,它得到的是活动类,但也从它的子菜单的所有链接。此外,如果我再次单击“prensa”,“artworks”的子菜单将保持打开,“artworks”的所有链接仍然获得活动类(也是“artworks”链接本身)。

另一个问题是,当我点击一个子菜单项时,它只添加了一个“类”,没有其他任何东西,所以我不能添加css使它处于活动状态。

这是我的标记:

        <ul id="menu" class="menu">
            <li id="artworks"><a href="#">ARTWORK</a>
                <ul class="submenu">
                    <img src="../img/submenu.png" alt="submenu" width="62" height="1" />
                    <li><a href="#" id="sweetlife">Sweet Life</a></li>
                    <li><a href="#">Pleasure</a></li>
                    <li><a href="#">Bienal de la habana</a></li>
                    <li><a href="#">Estudios de craneos</a></li>
                </ul>
            </li>
            <li id="prensa_nav"><a href="#">PRENSA</a></li>
            <li id="contacto_nav"><a href="#">CONTACTO</a></li>
        </ul>

这是我的JS:

    // active menu item
$(function() {
    $('#menu li').click(function() {
        $('#menu li').each(function() {
            $(this).removeClass('active');
        });
        $(this).addClass('active');
    });
});


    /* Menu dropdown */
    $(document).ready(function($){

    // Add class of drop if item has sub-menu
    $('ul.submenu').closest('li').addClass('drop');

    // Left Sidebar Main Navigation
    var menu_ul = $('.menu > li.drop > ul'),
        menu_a  = $('.menu > li.drop > a');

    menu_ul.hide()    

    menu_a.click(function(e) {
        e.preventDefault();
        if(!$(this).hasClass('active')) {
            menu_a.removeClass('active');
            menu_ul.filter(':visible').slideUp('normal');
            $(this).addClass('active').next().stop(true,true).slideDown('normal');
        } else {
            $(this).removeClass('active');
            $(this).next().stop(true,true).slideUp('normal');
        }
    });

});

有人能帮我解决这些问题吗?

共有1个答案

东门涵育
2023-03-14

您必须只对活动菜单的直接子菜单进行样式化,而不是对所有其他子菜单进行样式化。

对于脚本,对子菜单的单击调用两次:一次在子菜单上,一次在父菜单上。第一次调用在子级上设置类,但第二次调用立即删除它。您可以防止jQuery中单击的这种“传播”。

示例:http://jsfidle.net/willemvb/q96fk/

 类似资料:
  • 在本章中,我们将研究Joomla content下的菜单。 单击“ Content Menu时会显示一个下拉Content Menu 。 文章经理 在文章管理器中,您可以创建由图像,文本和超链接组成的标准页面。 点击Joomla管理面板上的Content → Article Manager菜单,您将看到以下屏幕 - 在这里,我们已经提到了有关Article Manager页面上的列标题的详细信息。

  • 问题内容: 我有一个-link元素,该元素具有指向页面的href链接,但是我必须使用Ajax从href -url加载该内容,而不是将用户重定向到该页面。如何修改链接以仅从该链接加载内容,以便可以将该内容注入当前页面? 我做了这个,但是没用。 问题答案: 的负载功能并不旨在收集请求响应,该功能用于负载HTML从远程文件并注入到一个DOM元素,例如: 如果处理锚元素的单击事件,则应防止浏览器跟随链接h

  • http://jsfidle.net/msbyuva/qpqqs/ CSS: ul.topnav{list-style:none;padding:10px;margin:0;float:left;width:100%;background:#f6f6f6;font-size:1em;color:black;}ul.topnav li{float:left;margin:0;padding:0 15

  • 问题内容: 这种情况: 用户将其zip插入输入字段,然后单击魔术按钮时,他会看到最接近其位置的商店。我称该服务很好,并以一些AJAX优点加载了该服务。一切都很好。 现在,我希望将结果显示在Fancybox中,而不是将结果插入页面上的某处。我根本无法完成这项工作。 JavaScript: 我希望Fancybox弹出并显示URL()中的标记。Fancybox已加载,但不是内容,而是一个字符串,内容为“

  • 问题内容: 我使用jQuery Tools Plugin作为图像滑块(此处为image ),但是由于图像数量巨大,我一次只需要加载几次。由于它是用JavaScript编码的,因此我无法知道滚动位置。我想在最后一张图片出现时立即加载它们。我不知道我放在哪里,事件监听器也什么都没有。 这是我的代码http://jsfiddle.net/PxGTJ/ 请给我一点光! 问题答案: 我只需要使用jQuery

  • 问题内容: 好的,所以我对ajax和从外部加载内容还很陌生,希望对我的问题有任何见解。 我目前有一个隐藏的div,它是空的,单击链接后应该在其中加载ajax内容。 我目前有一个链接列表,所有链接都具有相同的类,并且我想在单击空白div时进行幻灯片切换,然后从链接要访问的页面中加载内容。 链接: 当前的jQuery: 刚接触Ajax并加载外部内容时,我想知道如何从位于标签中的链接页面加载内容。因此,