我遇到了无法删除在我的扩展程序中动态创建的菜单的问题。我可以通过document.getElementById
获得菜单对象,或者使用像我这样的jQuery的东西。基本上,用户点击'删除'菜单项,它应该删除父菜单(有2个父母,因为它去菜单>弹出> menuitem(点击))。动态删除XUL菜单
警报吐出适当的id
为我想要删除。 removeObj.remove();
崩溃扩展名。最后一行似乎没有任何作用(除非再次点击删除它不再能找到id
),但它仍然可以在用户界面中看到。
代码:
var jObj = $(menuObject);
var removeObj = $(jObj).parent().parent();
var id = removeObj.attr('id');
alert(id);
//removeObj.remove();
$(removeObj).parent().removeChild(document.getElementById(id));
这不是因为jQuery的。我写了这一点,它完全禁用执行后的右键菜单(但如果情况返回正确的ID位置)
var mainMenu = document.getElementById('rclickMenu_MenuPopupContainer');
var toRemove = document.getElementById("rclickMenu_"+main);
for(var i=0; i < mainMenu.children.length; i++){
if(mainMenu.children[i].getAttribute('id') == toRemove.getAttribute('id')){
alert(toRemove.getAttribute('id'));
//mainMenu.removeItemAt(i);
mainMenu.removeChild(toRemove);
}
}
它看起来像你正在使用jQuery代码,但浏览器代码中不存在jQuery,那么为什么你使用jQuery代码? – erikvold
你可以在你的代码中包含jquery以便能够使用它。即使我不使用它,它也不起作用。恩。 var mainMenu = document.getElementById('mainmenu'); mainMenu.removeChild(的document.getElementById( 'clickeditem')); – leshow
呵呵?你使用jQuery吗? – erikvold