Javascript使按钮对元素执行多个操作

Javascript使按钮对元素执行多个操作,javascript,html,button,action,Javascript,Html,Button,Action,例如,我现在有一些按钮可以调整盒子的高度、颜色和不透明度- document.getelementbyID("growbutton").addEventlistener("click", function growFunction() { document.getelementbyID("box").style.height = "300px" }); document.getelementbyID("

例如,我现在有一些按钮可以调整盒子的高度、颜色和不透明度-

document.getelementbyID("growbutton").addEventlistener("click", function growFunction() {
  document.getelementbyID("box").style.height = "300px"
});

document.getelementbyID("bluebutton").addEventlistener("click", function blueFunction() {
  document.getelementbyID("box").style.color = "#0000FF"
});
这些工作很好-我想要的是一个复位按钮,这将重置“框”回到原来的设置。当前的JS看起来像这样

document.getelementbyID("resetbutton").addEventlistener("click", function resetFunction() {
  document.getelementbyID("box").style.height = "150px"
});

document.getelementbyID("resetbutton").addEventlistener("click", function resetFunction() {
  document.getelementbyID("box").style.color = "#FFA500"
});

但是,执行时,“框”仅在高度上重置,而不在颜色上重置。任何帮助都将不胜感激。

您不需要为每个函数发送单个操作。您可以创建一个函数
resetFunction
,并将其传递给
addEventListener

function resetFunction(){
  let box = document.getElementById("box");
  box.style.height = "150px";
  box.style.color = "#FFA500";
}

document.getElementById("resetbutton").addEventlistener("click", resetFunction);

这是最好的方法,但可能将第二个函数的名称更改为
resetFunction2
也会起作用

实际上,您需要存储一组可以引用的默认值。 您可以在加载文档时执行此操作,即:

<head>
<script>
var defaults = {}
function setDefaults() {
  defaults.box = {
    height: document.getElementByID("box").style.height,
    color: document.getElementByID("box").style.color
  }

// I tucked these functions in here since they need to fire after the page loads

    document.getElementByID("resetbutton").addEventListener("click", function resetFunction() {
      document.getElementByID("box").style.height = defaults.box.height
      document.getElementByID("box").style.color = defaults.box.color
    });


}
</head>
<body onload='setDefaults()'>
...

变量默认值={}
函数setDefaults(){
默认值.box={
高度:document.getElementByID(“box”).style.height,
颜色:document.getElementByID(“框”).style.color
}
//我把这些函数放在这里,因为它们需要在页面加载后启动
document.getElementByID(“resetbutton”).addEventListener(“单击”,函数resetFunction()){
document.getElementByID(“box”).style.height=defaults.box.height
document.getElementByID(“box”).style.color=defaults.box.color
});
}
...

你会非常生我的气的。。。超级诺布错误。重置功能在发布的所有JS中都可以一直使用。我的颜色更改按钮地址背景颜色,我的重置地址颜色。现在修好了

为了将来的参考,请使用代码格式化程序工具栏按钮{},以便代码清晰易读。在您编写了
getelementbyID
而不是
getelementbyID
的地方,第一个块如何正常工作?@adiga他可能手动将其复制到这里,而不是
ctrl+c
。那是我的guess@iagowp他们为什么要这样做。在这里复制代码不是比手动编写整个代码更容易吗again@adiga,是的,对不起。我对整个编码工作都是新手。今年晚些时候我将开始一个代码训练营,我正在做一些练习作业,以便提前学习。我只是手工输入的。它是
getElementById
addEventListener
。我还建议查询一次
#box
,并在一次调用中设置样式。我刚刚从问题中复制了内容,假设它是正确的。不管怎样,我都会把它修好的,谢谢。我是手动输入代码而不是复制粘贴代码的,因为我现在工作的是另一份工作,而且没有带我的学校笔记本电脑。在Visual studio代码中-当我键入function resetFunction()时,这就是定义和命名函数。然后{const-box=document.getElementById(“box”);是指设置名为box常量的元素。然后,下一行定义这些常量?然后,下一行是指单击执行函数reset function?我理解正确吗?我键入这些响应时的格式非常糟糕,对不起。谢谢大家:)。好的,只需复制此代码并进行尝试。它仍然只会重置高度?var defaults={}函数setDefaults(){defaults.box={height:document.getElementByID(“box”).style.height=“150px”,color:document.getElementByID(“box”).style.color=“#FFA500”}我在这里编辑了你的代码来定义高度和颜色,看起来对吗?@MichaelRogers-我的意图是直接从DOM读取值,而不是硬编码信息。因为原始高度和颜色将在某个样式表中定义,所以硬编码数据两次是没有意义的。如果你更新了样式Sheet,此代码将自动调整哦,因此我不需要设置值,它将从HTML文档中读取它?很抱歉,无法理解,仍在学习>。正确。它将读取HTML以获取默认值。根据@iagowp的第一个建议,创建一个函数并传递给eventListener仍然只调整高度,而不调整高度颜色。我要试试你的解决方案,看看效果如何。