【发布时间】:2015-04-24 17:20:09
【问题描述】:
所以我是在假设这个函数
button.onclick = exampleFunk;
当我单击每个按钮时会给我一个处理程序,但它没有。替换为:
button.onclick = alert("bananas");
我在页面加载时收到警报。这个问题已经解决了:
button.setAttribute("onclick", "removeIssue(this)");
出于好奇……发生了什么事?
编辑后的布局
编辑
var issues = [];
window.onload = function () {
//alert("venster geladen");
issuesToList()
}
function issuesToList(data) {
/*alert(
"array length is " + data.issues.length + "\n" +
"total_count is " + data.total_count + "\n" +
"limit is " + data.limit + "\n" +
"offset is " + data.offset + "\n" + ""
);*/
for (i = 0; i < data.issues.length; i++) {
issue = data.issues[i];
createIssue(issue);
}
}
function createIssue(issue){
var id = issue.id;
var tracker = issue.tracker;
var status = issue.status;
var priority = issue.priority;
var subject = issue.subject;
var description = issue.description;
var assignee = issue.assignee;
var watchers = issue.watchers;
var ticket = new Issue(id, tracker, status, priority, subject, description, assignee, watchers);
issues.push(ticket);
var button = document.createElement("button");
button.innerHTML = "-";
button.onclick = function (){ alert("bananas")};
//button.setAttribute("onclick", "removeIssue(this)");
var item = document.createElement("div");
item.setAttribute("id", id);
item.appendChild(button);
item.innerHTML += " " + subject;
var container = document.getElementById("container");
container.appendChild(item);
}
function removeIssue(e){
var key = e.parentNode.getAttribute("id");
var count = issues.length;
if(confirm("Confirm to delete")){
for(i=0; i<count; i++){
if (issues[i].id == key ){
issues.splice(i,1);
var element = document.getElementById(key);
element.parentNode.removeChild(element);
}
}
}
}
function Issue(id, tracker, status, priority, subject, description, assignee, watchers){
this.id = id;
this.tracker = tracker;
this.status = status;
this.priority = priority;
this.subject = subject;
this.description = description;
this.assignee = assignee;
this.watchers = watchers;
}
编辑
<body>
<h1>List of Issues</h1>
<div id="container"></div>
<script src="http://www.redmine.org/issues.json?limit=10&callback=issuesToList"></script>
</body>
【问题讨论】:
-
你可以试试这个 button.addEventListener("click", function() { alert("alert");}); ?
-
button.addEventListener("click", alert("alert"));我试过这个。因为你的@sushil 也没有工作。再次获取页面加载警报
-
尝试在 onload() 函数中调用它
-
您的代码需要您添加文本节点,而不是修改父对象的
innerHTML。请参阅我的答案以及更新的信息和一个工作示例。
标签: javascript button onclick eventhandler