javascript - 事件处理麻烦JS

标签 javascript html css event-handling

我有一个用 html 和 css 编码的导航栏,我正在尝试为每个按钮添加选中和取消选中的状态。我将第一个按钮的状态设置为在 window.onload 函数中选择,如下所示:

<script type="text/javascript">

    window.onload = function() {
        var nav = document.getElementById('textContainer');
        var navItems = nav.getElementsByTagName('a');
        var item = navItems[0];
        item.style.color = "#696969";                       
};


</script>

然后我在另一个函数中添加事件处理程序,以便可以选择和取消选择按钮:

<script type="text/javascript">
    var nav = document.getElementById('textContainer');
    var activeItem = null;
    var navItems = nav.getElementsByTagName('a');

    for (var i = 0; i < navItems.length; i++) {
        navItems[i].addEventListener('click', 
        function() {

            if (activeItem) {
                activeItem.style.color = "#b3b3b3"; 
            }

            this.style.color = "#696969";
            activeItem = this;

            //alert(activeItem.innerText);

        }, false);
    }
</script>

但是正如我添加的那样,在 window.onload 函数中设置的第一个按钮不会像其他按钮一样取消选择,您必须单击第一个按钮然后完成后,您可以选择它并随时取消选择它。

你能告诉我哪里错了吗?

提前致谢!

XcodeDev.

最佳答案

在分配事件处理程序之前,尝试使用第一个按钮初始化 activeItem:

var navItems = nav.getElementsByTagName('a');
var activeItem = navItems[0];

关于javascript - 事件处理麻烦JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8627403/

相关文章:

javascript - 单击按钮提交表单并禁用按钮

javascript - 单击按钮时折叠面板 - bootstrap

javascript - 如何手动解码 JPEG 无损、非分层、一阶预测

javascript - canvas getImageData 在 Windows 上本地运行时不起作用? (安全异常(exception))

html - 类似于 Flipboard 的 CSS 翻转动画

jquery - 无法在可见的溢出内容上使用悬停

html - 在此代码中添加空格并更改字体

javascript - 使用jquery优化在html中追加元素的方式

javascript - Node 101 : app. 使用 ReferenceError [route] 未定义

javascript - 事件监听器似乎无法识别我的类?