这是代码,结果是:您可以通过单击“内部”来查看测试菜单。
$(document).ready(function () {
var $links = $('#menu-menu-1 .menu-item a').click(function () {
var submenu = $(this).next();
$subs.not(submenu).hide()
submenu.toggle(500);
$("#menu-2").slideToggle(300);
});
var $subs = $links.next(); });问题是,如果我点击菜单,它就会出现子菜单,但是如果我不关闭我打开的子菜单,并且在菜单中打开另一个声音,它就不能正常工作。
当#menu-2打开时,如果我单击另一个.menu-item a,会发生什么?脚本正确地关闭并打开另一个子菜单,但我的#menu-2只关闭。如果我关闭.menu-item a所以..。#menu-2打开。我该怎么办才能修好?
发布于 2013-11-12 03:57:53
试一试
$(document).ready(function () {
var $menu2 = $("#menu-2");
var $links = $('#menu-menu-1 .menu-item a').click(function () {
var submenu = $(this).next();
$subs.not(submenu).hide();
var isVisible = submenu.stop(true, true).is(':visible');
$menu2.stop(true, true);
if (isVisible) {
submenu.hide(500);
$menu2.slideUp(300);
} else {
$menu2.slideUp(300, function () {
$menu2.slideDown(300);
submenu.show(500);
});
}
});
var $subs = $links.next();
});发布于 2013-11-12 03:57:25
我认为你可以简化你想要做的事情(未经测试):
$(function () {
var menuItems = $('#menu-menu-1 > li');
var submenus = $('ul', menuItems)
menuItems.click(function () {
submenus.slideUp(); // Hide all menus to their default hidden state
var submenu = $('ul', $(this)); // Show the child menu for the clicked menu
submenu.toggle(500);
});
});https://stackoverflow.com/questions/19920397
复制相似问题