用JS写的为实现点击一下a标签写的按钮,使之变换背景颜色,我的代码只能是先点两次才能变换背景颜色,求告知,谢谢!

我用以下代码实现背景变换
【代码】

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style type="text/css">
        *{
            margin: 0 auto;
            padding: 0;
        }
        div{
            height:210px;
            width: 100px;
        }
        div>a{
            text-decoration: none;
            color: black;
            width: 100px;
            height: 40px;
            background: green;
            float: left;
            margin-bottom: 10px;
        }
    </style>

</head>
<body>
    <div>
        <a href="" name="a1">123</a>
        <a href="" name="a1">123</a>
        <a href="" name="a1">123</a>
        <a href="" name="a1">123</a>
        <a href="" name="a1">123</a>
        <a href="" name="a1">123</a>
    </div>
</body>
    <script type="text/javascript">
        var a=document.getElementsByName("a1");
        for(var i = 0; i < a.length;i++){
            a[i].onclick = function(){
                this.style.background = "red";
            }
        }
    </script>
</html>

【问题】怎么点一下就能变色,而不是要点两下才变色呢!
【图】
图片描述

【请大佬帮助!】

阅读 4.6k
3 个回答

加一句event.preventDefault()阻止事件的默认行为就不会跳转了。楼上答案把href都去掉了,那干嘛用a标签,用div或者span啥的都ok。

你把<a href="" name="a1">123</a>这句话中的href=""去掉就可以了,a标签中有了href="",点击a标签的时候会强制刷新页面,导致你自定义的click点击因页面刷新无效。

楼上都解答了,我提个建议吧,绑定事件的形式可以用事件委托。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题