var button = document.createElement("button");
button.type = "button";
button.className = "button";
button.innerText = "OK";
button.addEventListener("click", function() {
console.log("Hello!");
}, false);
當我做到這一點,按鈕永遠不會是事件偵聽器。我試過attachEvent,button.onclick,並沒有什麼似乎工作。該按鈕在課程和文本中顯示得很好。的addEventListener編程爲空
編輯:所以基本上我想要做的是編程方式顯示的div的「彈出式」陣列。
這裏是什麼樣子的截圖:http://i.imgur.com/IqaOq.png,我設置它是這樣的:var x = new JMTK.Custom.MessageDialog()
,然後添加一個彈出窗口,我只需鍵入x.addMessage({template: {type: JMTK.Custom.MessageDialog.templates.alert, title: "Alert title", message: "This is a message here", button1: {text: "Hello"}}})
這是addMessage()
:
var content = document.createElement("div");
//htmlObject.template is the object that has all the info, 'this' is the scrim element that contains each "white" popup"
content.innerHTML = MessageDialogClass.html.alert(htmlObject.template, this).innerHTML
調用該函數:當我點擊一次按鈕
alert: function (template, element) {
//Array of functions
var callbacks = MessageDialogClass.callbacks;
var alert = document.createElement("div");
var id = Date.now();
alert.id = id;
var header = document.createElement("h1");
header.innerText = (template.title ? template.title : "ALERT");
var paragraph = document.createElement("p");
paragraph.innerText = (template.message ? template.message : "No message specified")
var button = document.createElement("button");
button.type = "button";
button.className = "button";
button.innerText = (template.button1.text ? template.button1.text : "OK");
button.addEventListener("click", function() {
if (template.button1.callback) {
template.button1.callback();
}
//MessageDialogClass.popElement(id);
//delete callbacks.id;
}, false);
alert.appendChild(header);
alert.appendChild(paragraph);
alert.appendChild(button);
callbacks.id = alert;
return alert;
},
但是,沒有任何反應,而在DOM Explorer沒有onclick屬性。
您是否將元素添加到DOM?什麼瀏覽器(舊版本的IE不支持addEventListener)? – jfriend00
任何錯誤消息? – Shmiddty
是的,正如我所說的類/文本顯示'alert.appendChild(按鈕);'警報是我的外部div,任何地方都沒有錯誤消息。在Visual Studio 2012中的DOM Explorer中,onclick事件不在那裏。 –