Javascript 切换jquery子菜单项
当我尝试切换子菜单项时,该项将切换,但第一级菜单将关闭。当用户单击子菜单项时,菜单不应隐藏。例如,如果单击SSNIT并转到“核心服务”,则会出现子菜单,但第一级菜单项已关闭。需要一些专业知识来解决这个问题吗? 您可以在这里查看JSFIDLE上的代码 HTML: JavaScript:Javascript 切换jquery子菜单项,javascript,jquery,Javascript,Jquery,当我尝试切换子菜单项时,该项将切换,但第一级菜单将关闭。当用户单击子菜单项时,菜单不应隐藏。例如,如果单击SSNIT并转到“核心服务”,则会出现子菜单,但第一级菜单项已关闭。需要一些专业知识来解决这个问题吗? 您可以在这里查看JSFIDLE上的代码 HTML: JavaScript: $(document).ready(function () { $("#menu ul li, #menu > li ul li").click(function () {
$(document).ready(function () {
$("#menu ul li, #menu > li ul li").click(function () {
//mouse click toggle menu items
$('>ul').toggle(
// mouseover
function () {
$(this).find('>ul').fadeIn('slow');
});
});
});
根据您的html结构,您可能只需要以下内容:
$(document).ready(function () {
$("#menu li > a").on('click', function(e){
$(this).siblings('ul').toggle('slow');
});
});
有了它,无论子菜单显示多少级别,这一事件注册就足够了
请注意,toggle伪事件已被弃用,您需要使用click event自己处理它。您使用的是哪个版本的jquery?我使用的是10.2版(jquery-1.10.2.min.js),我在JSFiddle@user2744859上稍微更新了脚本,这两个fiddle似乎都不起作用,我在屏幕上看不到任何子菜单click@user2744859你想要这样的-->这回答了我的问题。非常感谢@用户2744859不客气。。顺便说一句,如果要阻止链接重定向,只需在处理程序内部执行
e.preventDefault()
。
$(document).ready(function () {
$("#menu ul li, #menu > li ul li").click(function () {
//mouse click toggle menu items
$('>ul').toggle(
// mouseover
function () {
$(this).find('>ul').fadeIn('slow');
});
});
});
$(document).ready(function () {
$("#menu li > a").on('click', function(e){
$(this).siblings('ul').toggle('slow');
});
});