javascript - 单击时更改链接背景颜色

标签 javascript html

我想在用户单击链接时更改链接的背景颜色/onClick。这是我当前正在编写的代码;

<a href="javascript:void(0);" onclick="myFunction()" class="dropbtn" id="dropbtn">Link Drop Down</a>
function myFunction() {
  document.getElementById("myDropdown").classList.toggle("show");
  document.getElementById("dropbtn").onclick = function()
    {
        this.style.background = '#FFF';
    }
}

但它没有起作用,我不知道为什么。

最佳答案

<a href="javascript:void(0);" class="dropbtn" id="dropbtn">Link Drop Down</a>

function myFunction() {
  document.getElementById("dropbtn").onclick = function(event) {
    var drop_down = document.getElementById("myDropdown");
    if (!drop_down.classList.contains('show')) {
        drop_down.classList.add('show');
        this.style.background = '#FFF';
    }
    else {
        drop_down.classList.remove('show');
        this.style.background = '';
    }
    return true; 
  }
}
myFunction(); 

基本上,您必须安装 onclick 事件处理程序(请参阅 https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Event_handlers ),它接收带有事件信息的 event 参数。其中的 this 实际上指向 id=dropbtn 的元素,因此您可以像问题中那样直接引用它,也可以获取 event 上的引用。目标

编辑

其实我错了,抱歉,this确实指向了点击的元素。修正了答案。

关于javascript - 单击时更改链接背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61356609/

相关文章:

javascript - 如何将 DOM 状态重置为初始状态(首次收到页面时?)

JavaScript动画滑动菜单

html - 使 img 在所有设备上响应

javascript - 如何使用javascript显示图像

html - 隐藏主菜单但不隐藏移动设备上的其他菜单

javascript - 你如何在jquery中移动一个div元素

javascript - D3 Selection.append ("image") 来自缓存的响应

javascript - Jquery Ajax不向php服务器发送数据

javascript - jQuery UI 可拖动位置是否受 scrollTop 影响? (包括 JSFiddle)

html - No-Children-But-Not-Empty 的 CSS 选择器