可点击的下拉菜单javascript

时间:2014-05-23 18:16:07

标签: javascript jquery html drop-down-menu clickable

我使用JavaScript在网页中创建了3个可点击的下拉菜单按钮。当我单击一个按钮时,脚本运行良好。我可以看到显示以下菜单。当我另一个按钮时,显示以下菜单。但是,之前的菜单仍在那里。

这是我的脚本。希望可以有人帮帮我。谢谢!

<script type="text/javascript" >
$(document).ready(function() {

    $(".account").click(function() {
        var X = $(this).attr('id');
        if (X == 1) {
            $(".submenu").hide();
            $(this).attr('id', '0');
        } else {
            $(".submenu").show();
            $(this).attr('id', '1');
        }

    });

    //Mouse click on sub menu
    $(".submenu").mouseup(function() {
        return false
    });

    //Mouse click on my account link
    $(".account").mouseup(function() {
        return false
    });

    //Document Click
    $(document).mouseup(function() {
        $(".submenu").hide();
        $(".account").attr('id', '');
    });
});
</script> 

// CSS

.dropdown
{
color:#000;
margin: 0px 22px 0 0;
width: 300px;
height: 30px;
text-align:center;
}
.submenu
{
background:#FFF ;
position: absolute;
top: 118px;
left: 515px;
z-index: 100;
width: 250px;
display: none;
border-radius: 6px;
border: outset 2px #0066FF;
box-shadow: 0 0px 0px rgba(0, 0, 0, 0.05);
}

.dropdown li a
{
color:#555555;
display: block;
font-family: arial;
font-weight: bold;
padding: 6px 15px;
cursor: pointer;
text-decoration:none;
margin-top:-5px;
}

.dropdown li a:hover
{
background:#155FB0;
color: #FFFFFF;
text-decoration: none;
}
a.account
{
font-size: 18px;
line-height: 10px;
color: #000;
border: ridge 2px #0066FF;
position: absolute;
z-index: 110;
display: block;
padding: 11px 0 0 0px;
height: 20px;
width: 300px;
margin: 0px 0 0 0px;
text-align:center;
text-decoration: none;
background: url(images-new/arrow.png) 275px 9px no-repeat;
cursor:pointer;
}
.root
{
list-style:none;
margin:0px;
padding:0px;
font-size: 11px;
padding: 11px 0 0 0px;
border-top:1px solid #dedede;
}

// html

<div class="dropdown">
<a class="account" >My Account</a>

<div class="submenu">
<ul class="root">
<li ><a href="#Dashboard" >Dashboard</a></li>
<li ><a href="#Profile" >Profile</a></li>
<li ><a href="#settings">Settings</a></li>
<li ><a href="#feedback">Send Feedback</a></li>
</ul>
</div>

</div>

1 个答案:

答案 0 :(得分:0)

我个人的建议是结合使用JS&amp; CSS。

您应该使用活动类来隐藏和显示元素:

//JS
$('.menu a').on('click', function({
    $('.menu a').removeClass('active');
    $(this).addClass('active');
});

// CSS
.active .submenu {
    display: block;
}