Javascript 单击并鼠标悬停时更改元素的颜色

Javascript 单击并鼠标悬停时更改元素的颜色,javascript,jquery,css,onclick,mouseover,Javascript,Jquery,Css,Onclick,Mouseover,我正在尝试编写一个代码,使其能够在单击时使用更高的z索引(我似乎已经理解了这一点)使元素出现在前面,并且我正在尝试使该元素保持一种不同的颜色,将其标识为当前页面。我想允许一个mouseover函数来改变其他元素的颜色,以将它们识别为其他按钮,这些元素看起来像文件标签,这样看起来更好。不幸的是,我添加了一个javascript代码,这样当单击另一个元素时,这些元素将返回到原始的渐变颜色,但我似乎不知道如何让mouseover函数为每个单独的元素工作。我不知道这对你来说是否有意义 Javascrip

我正在尝试编写一个代码,使其能够在单击时使用更高的z索引(我似乎已经理解了这一点)使元素出现在前面,并且我正在尝试使该元素保持一种不同的颜色,将其标识为当前页面。我想允许一个mouseover函数来改变其他元素的颜色,以将它们识别为其他按钮,这些元素看起来像文件标签,这样看起来更好。不幸的是,我添加了一个javascript代码,这样当单击另一个元素时,这些元素将返回到原始的渐变颜色,但我似乎不知道如何让mouseover函数为每个单独的元素工作。我不知道这对你来说是否有意义

Javascript:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script type="text/javascript">
    $(function() {
    // Change this selector to find whatever your 'boxes' are
    var boxes = $("div.menuitem");

    // Set up click handlers for each box
    boxes.click(function() {
        var el = $(this), // The box that was clicked
            max = 0;

        // Find the highest z-index
        boxes.each(function() {
            // Find the current z-index value
            var z = parseInt( $( this ).css( "z-index" ), 10 );
            // Keep either the current max, or the current z-index, whichever is higher
            max = Math.max( max, z );
        });

        // Set the box that was clicked to the highest z-index plus one
        el.css("z-index", max + 1 );
    });
});
    $(document).ready(function()
        {


    $("#productmenu").mouseover(function() { $("#productdropdown").css('visibility','visible'); });
    $("#productdropdown").mouseover(function() { $("#productdropdown").css('visibility','visible'); });
    $("#productdropdown").mouseout(function() { $("#productdropdown").css('visibility','hidden'); });
    $("#productmenu").mouseout(function() { $("#productdropdown").css('visibility','hidden'); }); 

        });
    $(document).ready(function()
        {


    $("#productmenu").click(function() { $("#couponmenu").css('background','linear-gradient(0deg, #F90, #D76B00)'); });
    $("#productmenu").click(function() { $("#contestmenu").css('background','linear-gradient(0deg, #F90, #D76B00)'); });
    $("#productmenu").click(function() { $("#contactmenu").css('background','linear-gradient(0deg, #F90, #D76B00)'); });
    $("#couponmenu").click(function() { $("#productmenu").css('background','linear-gradient(0deg, #F90, #D76B00)'); });
    $("#couponmenu").click(function() { $("#contestmenu").css('background','linear-gradient(0deg, #F90, #D76B00)'); });
    $("#couponmenu").click(function() { $("#contactmenu").css('background','linear-gradient(0deg, #F90, #D76B00)'); });
    $("#contestmenu").click(function() { $("#couponmenu").css('background','linear-gradient(0deg, #F90, #D76B00)'); });
    $("#contestmenu").click(function() { $("#productmenu").css('background','linear-gradient(0deg, #F90, #D76B00)'); });
    $("#contestmenu").click(function() { $("#contactmenu").css('background','linear-gradient(0deg, #F90, #D76B00)'); });
    $("#contactmenu").click(function() { $("#productmenu").css('background','linear-gradient(0deg, #F90, #D76B00)'); });
    $("#contactmenu").click(function() { $("#contestmenu").css('background','linear-gradient(0deg, #F90, #D76B00)'); });
    $("#contactmenu").click(function() { $("#couponmenu").css('background','linear-gradient(0deg, #F90, #D76B00)'); });

        })
        </script>
HTML:


给你,伙计。我花了一段时间才弄明白你想要什么。您的HTML和CSS需要做一些工作,因为它肯定不符合最佳实践

我们把包裹你的沙发的标签掉了。以后不应该这样做,因为元素是内联的,而div是块

HTML

这整件事都不见了,因为大部分情况下都没有意义

下面是CSS,它将接管大部分的艰苦工作:

CSS


嗯,好吧,我确实用了一个旧文件来创建这个,所以我有了一些框架。我一直在纠正一些问题,但我创建了一个JSFIDLE只是为了让它更容易可视化。这就是我试图解决的问题:
#productmenu:hover {
    background:linear-gradient(0deg, #FF972F, #FFD3A8);
    z-index:500;
}
<a href="#">
<div id="productmenu" class="menuitem" onclick="this.style.background='linear-gradient(0deg, #FF972F, #FFD3A8)',style.zIndex='500';">Products</div>
<ul id="productdropdown">
<li><a href="#">Product 1</a></li>
<li><a href="#">Product 2</a></li>
<li><a href="#">Product 3</a></li>
</ul>
</a>
<a href="#">
<div id="contestmenu" class="menuitem" onclick="this.style.background='linear-gradient(0deg, #FF972F, #FFD3A8)',style.zIndex='500';">Contest</div>
</a>
<a href="#">
<div id="couponmenu" class="menuitem" onclick="this.style.background='linear-gradient(0deg, #FF972F, #FFD3A8)',style.zIndex='500';">Coupon</div>
</a>
<a href="#">
<div id="contactmenu" class="menuitem" onclick="this.style.background='linear-gradient(0deg, #FF972F, #FFD3A8)',style.zIndex='500';">Contact</div>
</a>
<div id="productmenu" class="menuitem"><a>Products</a>
    <ul id="productdropdown">
        <li><a href="#">Product 1</a></li>
        <li><a href="#">Product 2</a></li>
        <li><a href="#">Product 3</a></li>
    </ul>
</div>  
$(document).ready(function() {
  $("#productmenu").mouseover(function() { $("#productdropdown").css('visibility','visible'); });
  $("#productdropdown").mouseover(function() { $("#productdropdown").css('visibility','visible'); });
  $("#productdropdown").mouseout(function() { $("#productdropdown").css('visibility','hidden'); });
  $("#productmenu").mouseout(function() { $("#productdropdown").css('visibility','hidden'); }); 
});
[id$=menu]:hover > a,
[id$=menu] li:hover > a {
    background:linear-gradient(0deg, #FF972F, #FFD3A8);
}
[id$=menu]:hover ul {
    display: block;  
    list-style: none;
    margin: 0;
    padding: 0 0 0 20px;
}
[id$=menu] ul {
    display: none;
}
[id$=menu] a {
    display: block;
}