我正在为带有子菜单的水平菜单而苦苦挣扎。我知道这是一个常见问题,我已经阅读了类似的问题,并尝试了许多建议的解决方案,但收效甚微。当然,有些问题是具体的或过时的。
我希望子菜单在子页面打开时保持可见。我还希望一个子菜单在打开另一个子菜单时关闭。
我找到了一个 jquery (1.7.2) 可以帮助我解决这两个问题。即使它已经一岁了,我也想试一试,因为它看起来很整洁:http: //forum.jquery.com/topic/slidetoggle-in-wordpress-menu-only-show-one-submenu-at -一次
jQuery(document).ready(function($) {
var $j = jQuery.noConflict();
$j.fn.setNav = function () {
$j('#nav ul li').css({
display: 'none'
});
$j('ul#nav > li:has( ul li.current-menu-item )').each(function () {
$j(this).find('ul.sub-menu').css({
overflow: 'visible',
height: 'auto',
display: 'block'
});
});
$j('ul#nav > li:has( ul.sub-menu )').click(function () {
var $jsublist = jQuery(this).find('ul:first');
$('.visible').slideUp('fast')
$jsublist.slideToggle('fast').addClass('visible');
return false;
});
$j('ul#nav > li > ul.sub-menu li ').click(function () {
var subURL = $j(this).find('a:first').attr('href');
location.href = subURL;
return true;
});
}
});
但它不起作用。(我补充说
var $j = jQuery.noConflict();
)
我究竟做错了什么?
这是一个小提琴:http: //jsfiddle.net/CP8Er/17/
我真的很感激这方面的帮助。我在 jquery 上苦苦挣扎,我希望你有经验的眼睛能看到对我来说仍然不明显的问题。