繁体   English   中英

XUL Richlistbox选择问题

[英]XUL Richlistbox selection issue

我的firefox扩展上有一个richlistbox,如下所示:

<richlistbox id="accList" class="accList" seltype="single" flex="1">
    <richlistitem id ="accListTemplate" hidden="true">
        <listcell class="sessionActivate"/>
        <listcell class="nameItem"/>
        <listcell class="lastUsedItem"/>
        <spacer flex="1" />
        <listcell class="sessionDelete" />
        <listcell class="sessionComplete" />
        <listcell class="sessionDetails" />
    </richlistitem>
</richlistbox>

通过Javascript我克隆这个richlistitem并将其添加到我想要的值的richlistbox。

结果是:

列表框多选

所有项目似乎都被选中,我无法更改该选择。

另一个奇怪的事情是,如果我点击其中一行并执行:

alert(document.getElementById("accList").selectedCount);

它说0。

我错过了什么吗?

隐藏与否,列表会自动选择第一个项目 - 当您克隆它时,您也会获得“选定”状态。 最简单的解决方案:只是不要将您的模板放在<richlistbox>标签内,将其放在外面的某个地方。

由于您克隆列表中第一项的方式,您将从该项目中获得一些您不期望的额外属性。 像这样的列表中的第一项继承了这些属性。

在克隆代码中,在将项目追加到列表中之前,请删除selected属性和current属性。

例:

var newtemplate = document.getElementById("accListTemplate").cloneNode(true);
newtemplate.removeAttribute("hidden");
newtemplate.removeAttribute("id");
newtemplate.removeAttribute("current");
newtemplate.removeAttribute("selected");
// do your content manipulation
document.getElementById("accList").appendChild(newtemplate);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM