我已決定從html表單元素中將所有對java腳本事件的調用移除到外部文件。在這樣做的時候,我爲每個項目註冊了一個事件。然而,使用'this
'訪問元素屬性不能再用於我已經決定使用的event.target.value
值屬性和event.target.name
作爲名稱屬性。我認爲這不是最好的實施,因爲我得到了一些不利的實施結果。Javascript註冊外部事件處理程序
下是我實施的代碼和更多的問題。
JavaScript的內聯事件處理程序(之前)
<input type="radio" name="rdb_NewUsers" value="1" list="#{'true':'Yes','false':'No'}" onclick="configureItemsForRadioButton(this.value, this.name)"
的JavaScript註冊的外部事件處理程序(後)
var configureRadioButtons = {
onClick:function(evt){
evt.stopPropagation();
console.log(evt.target.value + '||'+evt.target.name);
configureItemsForRadioButton(evt.target.value, evt.target.name);
}
};
dojo.connect(dojo.byId("rdbNewUser"), "onclick", configureRadioButtons, "onClick");
我面臨的問題是,當我上的任何按鈕點擊它實際上它執行的是console.log(evt.target.value + '||'+evt.target.name);
,即使它不是該按鈕的註冊事件。我認爲使用event.target
是指在頁面上執行的任何事件。還有什麼可以用來代替evt.target.value
來引用觸發事件值和名稱的對象。