Javascript 更改链接BG颜色onClick

Javascript 更改链接BG颜色onClick,javascript,html,Javascript,Html,我想在用户单击链接时更改链接的背景颜色/onClick。这是我目前正在编写的代码 <a href="javascript:void(0);" onclick="myFunction()" class="dropbtn" id="dropbtn">Link Drop Down</a> 但它不起作用,我不知道为什么。试试这个: <a href="javascript:void(0);" onclick="myFunction(e)" class="dropbtn" i

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

<a href="javascript:void(0);" onclick="myFunction()" class="dropbtn" id="dropbtn">Link Drop Down</a>
但它不起作用,我不知道为什么。

试试这个:

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


function myFunction(e) {
  document.getElementById("myDropdown").classList.toggle("show");
  e.target.style.background = '#FFF';
}

函数myFunction(e){
document.getElementById(“myDropdown”).classList.toggle(“show”);
e、 target.style.background='#FFF';
}

函数myFunction(){
document.getElementById(“dropbtn”).onclick=函数(事件){
var drop_down=document.getElementById(“myDropdown”);
如果(!drop_down.classList.contains('show')){
下拉.classList.add('show');
this.style.background='#FFF';
}
否则{
下拉.classList.remove('show');
this.style.background='';
}
返回true;
}
}
myFunction();
基本上,您必须安装
onclick
事件处理程序(请参阅),它接收带有事件信息的
Event
参数
它里面的这个
实际上指向id=
dropbtn
的元素,因此您可以像在问题中一样直接引用它,或者获取
event.target上的引用

编辑
实际上我错了,对不起,
这个
确实指向单击的元素。修复了答案。

onclick是一个事件处理程序:当相应的对象触发事件时接收事件信息的函数。您错过了参数
(ev)
,以及
ev.target.style.background='#FFF'
。已尝试,但未工作编辑部分工作。但出现了两个问题。1.下拉链接需要单击两次才能打开下拉列表。2.即使下拉列表已关闭,背景色仍保留在那里。1<如果类已存在于元素中,则“代码>切换”将删除该类,因此请检查是否最初未应用“类<代码>显示”。2.对应用背景
#FFF
的行必须更改,但我认为您可以处理:)虽然它没有达到我预期的效果,但感谢您的宝贵时间。谢谢。
<a href="javascript:void(0);" onclick="myFunction(e)" class="dropbtn" id="dropbtn">Link Drop Down</a>


function myFunction(e) {
  document.getElementById("myDropdown").classList.toggle("show");
  e.target.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();