次のようにsetInnerXTHML()に「onClick」属性を含めると、次のようになります。
var innerHtml = '<span>Build Track: Select a city where track building should begin'+
'<div id="action-end">'+
'<form>'+
'<input type="button" value="End Track Building" id="next-phase" onClick="moveTrainAuto();" />'+
'</form>'+
'</div></span>';
actionPrompt.setInnerXHTML(innerHtml);
var btn = document.getElementById('next-phase');
btn.addEventListener('click', 'moveTrainAuto');
'onClick'は削除されます。これは、Firebugで要素を検査することでわかります。これはそれが明らかにするものです:
<input id="app148184604666_next-phase" type="button" value="End Track Building"/>
onClickで呼び出される関数は次のとおりです。
function moveTrainAuto(evt) {
debugger;
ajax = new Ajax();
ajax.responseType = Ajax.JSON;
ajax.ondone = function(data) {
debugger;
if(data.code == 'UNLOAD_CARGO') {
unloadCargo();
} else if (data.code == 'MOVE_TRAIN_AUTO') {
moveTrainAuto();
} else if (data.code == 'TURN_END') {
turnEnd();
} else {
/* handle error */
}
}
ajax.post(baseURL + '/turn/move-trains-auto');
}
ご覧のとおり、「onClick」と「addEventListener」の両方を試しました。どちらも機能しません。何か案は?