2012-02-04 94 views
0

我有一个XUL menuitem元素,它使用insertafter attribute将自己放在特定的上下文菜单项后面。有一个边缘情况下,我想重新定位我的菜单项。如果我使用JavaScript动态更改insertafter属性,那么下次显示上下文菜单时,我的项目的位置是否会自动重新定位?或者insertafter只在铬初始化过程中被应用?我可以动态更改XUL项目的insertafter属性吗?

的文档状态:

此值可以是逗号分隔的id,其被扫描并 在窗口中找到的第一个被用来列表。

但是,就我而言,我可能使用的两个ID都是物理存在的(根据情况,其中一个或另一个简单地折叠)。因此,逗号分隔的列表不会帮助我。

回答

1

不,覆盖层适用于窗口加载时 - 改变insertafter属性之后根本什么也不会做,这个属性就没有什么特别的意思了。您应该使用通常的DOM方法,沿着这些方向:

var myElement = document.getElementById("my-element"); 
var insertAfter = document.getElementById("element-insert-after"); 
if (myElement && insertAfter) 
    insertAfter.parentNode.insertBefore(myElement, insertAfter.nextSibling);