如何创建包含链接或“<a>”标签的下拉菜单


How to create a dropdown-menu full of links or `<a>` tags?

Details

  • 我想创建一个包含链接或<a>标签的下拉菜单
  • 当我单击它们时,将放大到我单击的选项。

我尝试过什么

PHP/HTML

<div class="col-sm-6 drop-down ">
        Select Country : 
        <select id="state" name="state" class="select2" data-placeholder="Click to Choose...">
            <option value="">--Select--</option>
            <?php 
            foreach(array_unique($countries) as $country){ ?>
            <option href="#<?php echo $country ; ?>"  value="#<?php echo $country ; ?> "><a href="#<?php echo $country ; ?>" ><?php echo $country ; ?></a> </option>
            <?php } ?>  
        </select>
    </div>

问题

  • 当我点击它时,它根本不会去任何地方
  • 它只是呆在那里,就像什么都没发生一样
  • 网址也不会生效。

如果你需要一个非常简单的解决方案,你可以这样做:

<select onchange="window.location=this.value">
    <option value="">Select:</option>
    <option value="http://google.com">google</option>
    <option value="http://yahoo.com">yahoo</option>
</select>

在这种情况下,您应该使用 window.location.hash 而不是 window.location

链接中不能有其他 html。

而是使用锚点作为选项的值,并在检测到更改时使用 javascript 进行设置:

<select onchange="go(this.value);">
    <option value="#one">1</option>
    <option value="#two">2</option>
    <option value="#three">3</option>
</select>
<div id="one">one</div>
<div id="two">two</div>
<div id="three">three</div>
<script>
function go(link){
    window.location.hash = link;
}
</script>

http://jsfiddle.net/dcg5t097/

我不确定<a>标签是否应该在<option>内,这是一回事。你的HTML看起来像你在使用bootstrap,那么你为什么不只使用bootstraps dropdown-class呢?如果你真的想使用<select>你可能需要使用JavaScript,收听change-Event,然后滚动到你想要的部分。

另一件事是这样的:

您的链接,比如埃及,如下所示:

<a href="#Egypt" >Egypt</a>

而您的相应内容如下所示:

<div class="col-xs-2">
    <h5 id="#Africa" >Egypt</h5>
</div>

但是要使链接正常工作,您实际上需要具有 href 属性中指定的 id 的东西,因此您应该将代码更改为以下内容:

<div class="col-xs-2">
    <h5 id="Egypt" >Egypt</h5>
</div>