내 확장 프로그램에서 동적으로 생성 된 메뉴를 제거 할 수없는 문제가 있습니다. 나는 document.getElementById
으로 메뉴 객체를 얻거나 아래에있는 것처럼 jquery 항목을 사용할 수 있습니다. 기본적으로 사용자는 '제거'메뉴 항목을 클릭하고 부모 메뉴를 삭제해야합니다 (메뉴> 팝업> 메뉴 항목 (클릭)되기 때문에 부모가 2 명).동적으로 XUL 메뉴 제거
경고는 내가 제거하고 싶은 것을 id
으로 바꿉니다. removeObj.remove();
확장 프로그램이 다운됩니다. 마지막 줄은 아무것도하지 않는 것 같습니다 (두 번째 클릭을 제거하면 더 이상 id
을 찾을 수 없지만 UI에서는 여전히 볼 수 있습니다).
코드 :
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 코드를 사용하는 이유는 무엇입니까? – erikvold
코드를 사용하여 jquery를 사용할 수 있습니다. 비록 내가 그것을 사용하지 않더라도, 그것은 작동하지 않습니다. 전의. var mainMenu = document.getElementById ('mainmenu'); mainMenu.removeChild (document.getElementById ('clickeditem'))); – leshow
? jQuery를 사용하고 있습니까? – erikvold