динамическое удаление меню XUL - PullRequest
1 голос
/ 16 ноября 2011

У меня проблема с тем, что я не могу удалить меню, которое было динамически создано в моем расширении.Я могу получить объект меню с помощью document.getElementById или используя jquery, как показано ниже.По сути, пользователь щелкает пункт меню «удалить», и он должен удалить родительское меню (есть 2 родителя, потому что оно переходит в меню> всплывающее окно> пункт меню (нажал)).1004 * за то, что я хочу удалить.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.я написал это, и это полностью отключает меню правой кнопки мыши после выполнения (но возвращает правильное местоположение идентификатора в случае if)

                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);
                    }
                }

1 Ответ

0 голосов
/ 17 ноября 2011

До:

let (ele = document.getElementById(id)) {
    ele.parentNode.removeChild(ele);
}
...