Javascript 外部单击以重置颜色?

Javascript 外部单击以重置颜色?,javascript,Javascript,当我在输入框外单击时,我正在尝试将要更改的颜色背景更改为默认背景颜色,与使用输入表单中的红色或黄色更改之前相同 我尝试使用“null”或“none”,但没有成功? window.addEventListener('click',outside click); 函数更改背景(x){ var body=document.querySelector('body'); body.style.backgroundColor=x.value; } 函数外部单击(e){ 如果(e.target==背景色){

当我在输入框外单击时,我正在尝试将要更改的颜色背景更改为默认背景颜色,与使用输入表单中的红色黄色更改之前相同

我尝试使用“null”或“none”,但没有成功?
window.addEventListener('click',outside click);
函数更改背景(x){
var body=document.querySelector('body');
body.style.backgroundColor=x.value;
}
函数外部单击(e){
如果(e.target==背景色){
body.style.backgroundColor='none';
}
}

变色
红色
黄色的
如果您这样做:

body.style.backgroundColor = '';

它将返回到它在类中设置的颜色。

您需要从以下位置更改:

if(e.target == backgroundColor) {
致:

window.addEventListener('click',outside click);
函数更改背景(x){
var body=document.querySelector('body');
body.style.backgroundColor=x.value;
}
函数外部单击(e){
如果(e.target.tagName!=“选择”){
document.body.style.backgroundColor='';
}
}

变色
选择。。。
红色
黄色的

您的代码有更多问题。要检查不在
选择上的单击,请使用
e.target!==选择元素
。要重置颜色,请使用
初始值
值:

window.addEventListener('click',outside click);
var body=document.querySelector('body');
函数更改背景(x){
body.style.backgroundColor=x.value;
}
函数外部单击(e){
if(e.target!==document.querySelector(“#inputState”)){
body.style.backgroundColor='首字母';
}
}

变色
选择。。。
红色
黄色的
试试这个

window.addEventListener('click',outside click);
函数更改背景(x){
var body=document.querySelector('body');
body.style.backgroundColor=x.value;
}
函数外部单击(e){
var body=document.querySelector('body');
body.style.backgroundColor='';
}

变色
选择。。。
红色
黄色的

“函数外部单击(e){if(e.target==backgroundColor){body.style.backgroundColor='';}}}”更改了代码,但仍然在外部单击不会更改它仍然保持红色如果(e.target==backgroundColor)
尝试实现什么
backgroundColor
不是您在任何地方定义的变量。谢谢,它起作用了,但是您能告诉我为什么添加了!==querySelector(“#inputState”),因为我对JS@Behar
something!==something2
是一个表达式,如果
某物
something2
不同,则给出
true
。所以在我上面的回答中,
e.target!==querySelector(“#inputState”)
表示仅当您单击的元素不是您的select元素时才重置颜色。(
document.querySelector(“#something”)
document.getElementById(“something”)
相同,它给出了ID为
something
)的元素。哦,我明白了,谢谢你的帮助和解释,投票结果也是一样的;)它起作用了,谢谢,但你能解释一下为什么要添加标记名!='选择',这是什么意思,因为我对JS有点陌生,您可以使用e.tartget.id!='输入状态'。这样测试更准确,但代码似乎有问题,因为红色和黄色不显示up@Behar在上面的代码片段中,红色和黄色显示(在我的电脑的chrome浏览器中)-在你的浏览器中它们不显示?是的,不显示,我也使用chrome。也许是我的浏览器阻止了什么
if(e.target.tagName != 'SELECT') {