我试图让这个 jQuery 菜单在子页面打开时自动展开。具体来说,我需要“服务”部分的子页面,例如。“平面设计”“视频制作”和“网页开发”以展开状态显示菜单。有什么建议么?
查看此 JS Bin 了解更多信息http://jsbin.com/ihoqis/6/edit
<div id="primary-nav" data-selectname="Navigate to...">
<div class="menu-navigation-container"><ul id="main-nav" class="menu">
<li id="menu-item-11784" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11784"><a title="Interactive" href="#">Interactive</a></li>
<li id="menu-item-12121" class="menu-item menu-item-type-post_type menu-item-object-gallery menu-item-12121"><a title="Print" href="#">Print</a></li>
<li id="menu-item-15625" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15625"><a href="#">About</a></li>
<li id="menu-item-20804" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-20802 current_page_item menu-item-20804"><a href="#">Services</a>
<ul class="sub-menu">
<li id="menu-item-20816" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20816"><a href="#">Graphic Design</a></li>
<li id="menu-item-20815" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20815"><a href="#">Video Production</a></li>
<li id="menu-item-20814" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20814"><a href="#">Web Development</a></li>
</ul>
</li>
Jquery 代码:我使用了建议,但 .show() 似乎没有效果。
jQuery(document).ready(function() {
/*-----------------------------------------------------------------------------------*/
/* Menu
/*-----------------------------------------------------------------------------------*/
if(jQuery('body').hasClass('mobile')){ // Tablet Hover Fix
jQuery("#main-nav li").each(function(){
if ($(this).find(".active").length){
$(this).children('ul').slideToggle('normal');
}
// check URL for 'services' (may need to be refined to check a specific location
// in the URL structure)
if(window.location.href.indexOf("services") > -1) {
// expand the UL below the LI containing that menu item
$('a:contains("Services")').parents('li').children('ul').show();
}
if(jQuery(this).children('ul').length){
var link = jQuery(this).children('a');
if(link.attr('href') == '#'){
link.toggle( function() {jQuery(this).siblings('ul').slideDown("slow"); }, function() {jQuery(this).siblings('ul').slideUp("slow"); });
}
else{
var firstClick = true;
link.click(function(e){
if (firstClick){
jQuery(this).siblings('ul').slideDown("slow");
firstClick = false;
e.preventDefault();
}
});
}
}
});
}
else{
jQuery("#main-nav li").each(function(){
if(jQuery(this).children('ul').length){
jQuery(this).hoverIntent({
interval: 10, /*Original Value 100*/
over: navHoverIn,
timeout: 9900, /*Original Value 300*/
out: navHoverOut
});
}
});
}
function navHoverIn () {
jQuery(this).children('ul').slideDown("slow");
jQuery(this).addClass("down");
}
function navHoverOut () {
var menu = jQuery(this);
jQuery(this).children('ul').slideUp("slow",function() {
menu.removeClass("down");
});
}
var defaultmenu = jQuery('#primary-nav').attr('data-selectname');
jQuery('#main-nav').mobileMenu({
defaultText: defaultmenu
});
jQuery.event.special.debouncedresize.threshold = 250;