gpt4 book ai didi

javascript - 菜单 - ajax 加载内容的子菜单和事件链接

转载 作者:太空宇宙 更新时间:2023-11-04 15:35:12 24 4
gpt4 key购买 nike

我对菜单的事件项和切换的子菜单有疑问:当我点击“Prensa”或“Contacto”时,脚本会将事件井添加到菜单项。例如,“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');
}
});

});

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

最佳答案

您只需为事件菜单的直接子项设置样式,而不是所有其他子项。

对于脚本,子菜单上的点击被调用两次:一次在子菜单上,一次在父菜单上。第一次通话设置 child 的类(class),但第二次通话立即将其删除。您可以在 jQuery 中阻止这种点击的“传播”。

示例:http://jsfiddle.net/willemvb/q96FK/

关于javascript - 菜单 - ajax 加载内容的子菜单和事件链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12892142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com