2009-12-22 89 views
5

请,像jQuery选择下拉列表?

我想模拟下拉选择,但会有链接,没有形式。 麻烦在于如何选择您目前所在的可见类别或子类别链接?

<ul><li>Category 
    <ul> 
    <li>Subcategory1</li> 
    <li>Subcategory2</li> 
    </ul> 
</li></ul> 

所以,当你在目录,可见的将类别的名称,这是容易的,因为它的第一个LI,但是当你在子类,则子类别的名称将是“选择”,并可见。

如果你有其他的解决方案,然后列出,建议我。

对不起,我的英语我不知道该如何解释好:)

+0

欢迎的StackOverflow!伟大的第一个问题 – Sampson 2009-12-22 17:59:47

回答

2

如果我理解正确,那听起来对我来说就像你只需要几个div元素。一个显示当前选择的项目,另一个显示整个菜单(减去当前元素?)。

如果是这样的话,你可以将一个click事件给每个菜单项,将更新顶格文:

<div id="current_page">Default Value</div> 
<div id="current_menu"> 
    <ul> 
    <li><a href="page1.html">Page 1</a></li> 
    <li><a href="page2.html">Page 2</a></li> 
    </ul> 
</div> 

然后你会使用jQuery添加一些特效和逻辑:

$("#current_page").click(function(){ 
    $("#current_menu").slideToggle(); 
}); 

$("#current_menu a").click(function(event){ 
    event.preventDefault(); //prevent synchronous loading 
    $("#current_page").html($(this).text()); 
}); 
0

每次点击后,你需要通过循环列表项和检查,对当前位置设置类中进行相应李:

<div id="div1"> 
    <ul> 
    <li>Category 
     <ul> 
      <li><a href="abc">Subcategory1</a></li> 
      <li><a href="xyz">Subcategory2</a></li> 
     </ul> 
    </li> 
    </ul> 
</div> 

那么你的javascript:

var loc = window.location; 
$("#div1 li").each(function(){ 
    var a = $("a", this).attr("href"); 
    if(a == loc){ 
     $(this).addClass("hilight"); 
    } else { 
     $(this).removeClass("hilight"); 
    } 
});