的onclick
屬性標識,當用戶點擊這個特殊的元素會發生什麼。在你的情況下,你問的是一個函數運行;功能運行時,你可以放心的按鈕被點擊 - 這畢竟是函數本身是怎麼投入運動(除非你調用它的一些其他的方式)。
你的代碼是有點混亂,但假設您有兩個按鈕,你想知道被點擊其中一個,通過stateTextBox
值通知用戶:
(function() {
// Enables stricter rules for JavaScript
"use strict";
// Reference two buttons, and a textbox
var playButton = document.getElementById("play"),
stateTextBox = document.getElementById("state"),
ignoreButton = document.getElementById("ignore");
// Function that changes the value of our stateTextBox
function changeState(event) {
stateTextBox.value = event.target.id + " was clicked";
}
// Event handlers for when we click on a button
playButton.addEventListener("click", changeState, false);
ignoreButton.addEventListener("click", changeState, false);
}());
您可以測試該代碼住在http://jsfiddle.net/Y53LA/ 。
注意我們是如何在我們的playButton
和ignoreButton
添加事件偵聽器。這允許我們保持我們的HTML清潔(不需要onclick
屬性)。任何時候用戶點擊它們都會觸發changeState
函數。
內changeState
功能,我們能夠獲得一個event
對象。這給我們一些關於發生的特定事件的細節(在這種情況下,click
事件)。這個對象的一部分是target
,它是被點擊的元素。我們可以抓住從該元素的id
屬性,將其放入stateTextBox
的value
。
下面是調整HTML:
<input type="button" value="Play with Pogo" id="play" />
<input type="text" id="state" />
<input type="button" value="Ignore with Pogo" id="ignore" />
如果函數被調用,則該按鈕被點擊。但是,應該注意的形式,通常按鈕輸入將提交表單,它可以殺死任何js代碼 –
你到底想幹什麼?你似乎是檢查是否'ignoreTextBox'被點擊(在你的'if'狀態,你的'else'條件),而不是一個按鈕。 – Sampson
你是對的....讓我快速修復它 – heinst