我想在JavaScript中使用onClick事件並遇到問題。我想創建一個按鈕,當它被點擊時,它會改變它的ID,點擊處理程序和文本 - 我希望它在第一次點擊時變成一個完全不同的按鈕,但是當點擊它時恢復到原始按鈕第二次。Javascript更改按鈕和onClick問題
我的想法是爲被點擊的原始按鈕編寫一個事件處理程序,將其更改爲第二個按鈕,並將其放入函數「change()」中。我還計劃爲正在單擊的新按鈕編寫一個單獨的事件處理程序,將其更改爲原始按鈕,並將其放入函數「changeBack()」中。
問題是,當我點擊原始按鈕一次,更改()被調用,並在它內部changeBack()自動得到確切的調用,當onClick被定義爲新按鈕,正好在innerHTML之前改變。我評論了一些原始的線條,並提出警告來說明這種不需要的行爲。我想不管怎麼樣,當新按鈕被創建時點擊仍然是活動的,因此即使新按鈕從未被點擊過,也迫使它調用changeBack()。任何對此的幫助都會很大。謝謝。
<script type="text/javascript">
function change() {
var x = document.getElementById("button");
x.id = "alternateButton";
x.onClick = changeBack();
x.innerHTML = "Click to Change Me Back";
}
function changeBack() {
var x = document.getElementById("alternateButton");
alert('hi');
//x.id = "button";
//x.onClick = change();
//x.innerHTML = "Click Me";
}
</script>
<button id="button" onClick="change()">Click Me</button>
事件被綁定到的元素和不到的ID屬性。所以'change'方法總是在你點擊的時候執行。 – 2014-09-19 00:05:51
@Sushanth感謝您的回覆。這是有道理的。我應該說我實際上對JavaScript很新穎。如果我理解正確,那麼我想要做的是在點擊按鈕時將一個*不同的事件綁定到按鈕上。它是否正確?另外,我仍然困惑爲什麼changeBack()被調用。 – SpencerAAA 2014-09-19 00:11:09
那麼你究竟在做什麼。您是否打算在點擊時更改按鈕文字 – 2014-09-19 00:15:50