我想要一个正常的按钮样式。然后点击,它会变成绿色。然后3秒钟后,它将恢复到正常风格。使用setTimeout延迟按钮的样式更改
我可以通过onClick获取按钮来更改对脚本的调用,但是当我尝试在函数中将其返回到正常颜色时,出现范围错误。
的Javascript:
<script type="text/javascript">
function onClickDelayEvent() {
function newColor(elem) {
elem.style.background = 'green';
elem.style.color = 'white';
}
function normalColor(elem) {
elem.style.background = '';
elem.sytle.color = '';
}
setTimeout(normalColor,3000);
}
</script>
HTML:
<button id="copyButton" onclick="onClickDelayEvent(this)">Copy</button>
第一个函数(newColor)犯规火,我得到 “ELEM” 未定义的NORMALCOLOR功能。
如果我去掉额外的代码,只要改变它的样式就可以了。它只是让第二部分翻转回来,这是行不通的。
我喜欢这个答案,尤其是部分“关注点分离”是什么,我觉得很重要的。另外,我认为这个代码更清洁。此外,浏览器可能会缓存CSS,而这些内联属性无法做到。 – SVSchmidt
谢谢。这比我的思考过程要干净得多,并且对于关于onclick事件的链接更有意义。对此,我真的非常感激。 – noook
@nokaoii不客气。顺便说一下,如果您喜欢关于不使用内联HTML事件属性的链接答案,请随时投票回答。 ;) –