我想要一個正常的按鈕樣式。然後點擊,它會變成綠色。然後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事件屬性的鏈接答案,請隨時投票回答。 ;) –