以下是我脚本的一部分:
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')";
...
一切都很好。有人能告诉我我做错了什么吗?
答案 0 :(得分:6)
变化:
attr.nodeValue="showPanel(panel_id)";
为:
attr.nodeValue="showPanel('" + panel_id + "')";
答案 1 :(得分: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");
}