我正在尝试删除Javascript中的div但是"它不起作用.我的控制台中没有错误,但函数确实被调用了.
我不明白我做错了什么,所以我希望有人可以解释.这是它的工作原理:
function menu_load(type){
document.getElementById(type).onclick = function(){ menu_unload(type); }
var width = 100;
var height = 100;
var d = document.createElement('div');
d.id = 'menu';
d.className = 'menu';
d.style.width = width + 'px';
d.style.height = height + 'px';
document.getElementById('G').appendChild(d);
}
function menu_unload(type){
alert('test'); //this displays
var div = document.getElementById("menu");
div.parentNode.removeChild(div); // doesn't remove the div
document.getElementById(type).onclick = menu_load(type);
}
window.onload = function(){
menu_load('test');
}
Run Code Online (Sandbox Code Playgroud)
这里有什么错误我错过了吗?我只是无法解决问题.
如果我更正以下行,您的代码将适用于我:
document.getElementById(type).onclick = menu_load(type);
Run Code Online (Sandbox Code Playgroud)
哪个错误地调用menu_load()并尝试将结果分配给.onclick.它应该像你在其他功能中所做的那样
document.getElementById(type).onclick = function() { menu_load(type); };
Run Code Online (Sandbox Code Playgroud)
说实话,我不知道为什么这会修复它,因为你的代码实际上并不是语法错误,而是因为它调用 menu_load() 它重新创建了刚删除的div. 这.removeChild()条线应该先发生,但无论如何......
| 归档时间: |
|
| 查看次数: |
183 次 |
| 最近记录: |