javascript列表隔行变色,加点击事件颜色改变

(1).现有一个隔行变色的列表,鼠标划过当前行变灰,鼠标移出变为原来的颜色。(2).点击当前行,当前行变为黑色,移出当前行,当前行还是黑色。(3).点击其他行,变为黑色,... (1).现有一个隔行变色的列表,鼠标划过当前行变灰,鼠标移出变为原来的颜色。(2).点击当前行,当前行变为黑色,移出当前行,当前行还是黑色。(3).点击其他行,变为黑色,(2)中的颜色还原。
请问大神,(1)的效果做出来了,如何实现(2)、(3)的效果?
<html>
<head>
<script>
window.onload=function()
{
var oLi=document.getElementsByTagName('li');
var arr=['red','yellow'];
var str='';
for(var i=0;i<oLi.length;i++)
{
oLi[i].style.background=arr[i%arr.length];
oLi[i].onmouseover=function()
{
str=this.style.background;
this.style.background='gray';
}
oLi[i].onclick=function(){

this.style.background='black';
}
oLi[i].onmouseout=function()
{
this.style.background=str;
}
}
}
</script>
</head>
<body>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</body>
</html>
展开
 我来答
tianlidon
2016-01-13 · TA获得超过1219个赞
知道小有建树答主
回答量:676
采纳率:85%
帮助的人:107万
展开全部

<html>
<head>
<script>
    window.onload=function()
    {
        var oLi=document.getElementsByTagName('li');
        var arr=['red','yellow'];
        var str='';
        for(var i=0;i<oLi.length;i++)
        {
            oLi[i].style.backgroundColor=arr[i%arr.length];
            oLi[i].onmouseover=function()
            {
                if(this.style.backgroundColor!='black')//判断当前色为黑色则不响应onmouseover
                {
                str=this.style.backgroundColor;
                this.style.backgroundColor='gray';}
            }
            oLi[i].onclick=function(){
                window.onload();//首先还原其他行改变过的颜色
                this.style.backgroundColor='black';//设置本行为黑色
            }
            oLi[i].onmouseout=function()
            {
            if(this.style.backgroundColor!='black')//判断当前色为黑色则不响应onmouseout
                this.style.backgroundColor=str;
            }
        }
    }
</script>
</head>
<body>
<ul>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
</body>
</html>


追问
感谢您的回答。
请问如果清空其他改变行的颜色,如果不用window.onload()方法,什么代码可以实现呢?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-01-13
展开全部
没看懂你第三条什么意思。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式