像使用jQuery选择下拉列表?

时间:2009-12-22 17:38:39

标签: jquery css select

请,

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

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

因此,当您在类别上时,可见将是类别的名称,这很容易,因为它的第一个LI,但是当您在子类别上时,子类别的名称将被“选中”并且可见。

如果您有其他解决方案,请列出,建议我。

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

4 个答案:

答案 0 :(得分:2)

如果我理解正确的话,我觉得你只需要几个div元素。一个显示当前选择的项目,另一个显示整个菜单(减去当前元素?)。

如果是这种情况,您可以将click事件附加到将更新顶部div文本的每个菜单项:

<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());
});

答案 1 :(得分:0)

我认为您正在寻找Suckerfish Dropdowns

答案 2 :(得分:0)

每次点击后,您需要通过迭代列表项并检查当前位置来设置相应li的类:

<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");
    }
});

答案 3 :(得分:0)