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仍然只调整高度,而不调整高度颜色。我要试试你的解决方案,看看效果如何。