Jquery菜单问题

时间:2010-07-17 01:25:34

标签: jquery menu

我刚刚修改了我刚刚制作的另一篇文章,但这造成了另一个问题。我正在处理具有多个级别的导航菜单。这是我正在使用的脚本:

$(document).ready(function(){

// attach the click handler for the menu
$(".left-navigation-holder li a[href='']:has(~ul)").click(toggleMenu);

// Expand menu for the current page:
var level1Selector = "#" + $("body").attr("menul1");
var level2Selector = "#" + $("body").attr("menul2");
var level3Selector = "#" + $("body").attr("menul3");

 $(".left-navigation-holder li a:has(~ul"+ level1Selector +")").click();
 $(".left-navigation-holder li a:has(~ul"+ level2Selector +")").click();
 $(".left-navigation-holder li a:has(~ul"+ level3Selector +")").click();

});

// menu toggle function
function toggleMenu() {
//if ($(this).attr(href='#')) {alert("yes")} else {alert("no")}
$(this).siblings("ul").toggle();
$(this).closest("li").toggleClass("selected");


 return false;
}

第一行启动菜单时说如果菜单中的一个链接上有一个点击事件,并且该链接有一个空的href属性和一个列表,那么它会触发toggleMenu打开该级别。检查href值的原因是,如果为空,则打开菜单,否则会将用户发送到URL值并且不切换菜单。这样就可以选择在其他菜单切换子菜单时为某些菜单设置页面链接(并保留子级别)。

脚本的另一部分读取我在每个页面上的body标签中设置的属性值(menul1,menul2,menul3),以了解我们菜单中的哪个页面,以便菜单打开正确的菜单级别当页面加载时。

我遇到的问题是因为第一行检查href属性的值,如果通过单击具有链接和子菜单的菜单调用加载的页面,则在加载页面时不会打开该页面因为href有一个值。启动每个级别的3行现在仅在href值为空时才起作用。

不确定该怎么做。帮助将不胜感激。我希望这很清楚。

谢谢!

1 个答案:

答案 0 :(得分:0)

您似乎希望以相同的方式执行两项不同的操作 - 您希望通过单击来禁用切换带有链接的菜单,但是您也尝试通过单击它来打开它。

与其打电话click()打开当前页面的每个菜单,您是否可以改为拨打toggleMenu