0

这是我的脚本的一部分:

function create(panel_id,iframe_source,handle_title) {
 var temp1=document.createElement("a");
 temp1.setAttribute("href","#");
 var attr=document.createAttribute("onClick");
 attr.nodeValue="showPanel(panel_id)";
 temp1.setAttributeNode(attr);
 temp1.className="controller";
 temp1.innerHTML=handle_title;
 div.appendChild(temp1);
}
function showPanel(panel_id) {
 var elem = document.getElementById(panel_id);
 elem.classList.toggle("show");
}

这是我调用第一个函数的部分:

<a href="#" onClick="create('test','http://example.com','example')">create</a>

当我调用它时,除了 onClick 属性之外,每个元素都被正确创建并正常工作。我注意到当我像这样更改函数时:

...
attr.nodeValue="showPanel('test')";
...

一切正常……有人能告诉我我做错了什么吗?

4

2 回答 2

6

改变:

attr.nodeValue="showPanel(panel_id)";

至:

attr.nodeValue="showPanel('" + panel_id + "')";
于 2013-10-14T15:12:49.717 回答
0

有两个问题

1) onClick 应该是 onclick

2)"showPanel(panel_id)";应该是

"showPanel('" + panel_id + "')";

尝试这个

function create(panel_id,iframe_source,handle_title) {
 var temp1=document.createElement("a");
 temp1.setAttribute("href","#");
 var attr=document.createAttribute("onclick");
 attr.nodeValue="showPanel('" + panel_id + "')";
 temp1.setAttributeNode(attr);
 temp1.className="controller";
 temp1.innerHTML=handle_title;
 div.appendChild(temp1);
}
function showPanel(panel_id) {
 var elem = document.getElementById(panel_id);
 elem.classList.toggle("show");
}
于 2013-10-14T15:18:30.093 回答