0

<menuitem type="checkbox" checked="true" label="Enabled">我正在开发的 Firefox 插件中有一个元素。我正在使用 jQuery 设置和取消设置checked属性,如下所示:

var element = $("#extension-menupopup:first-child");
element.attr("checked", "false");
element.attr("label", "Disabled");
element.attr("tooltiptext", "Extension is disabled.");

前两个.attr()调用似乎有效,但“启用”旁边的刻度线并没有消失,并且label不会变为“禁用”。验证 Scratchpad 的“浏览器上下文”上的值,这些值分别返回为“false”和“Disabled”。因此,属性的值已正确设置,但 UI 不会更新以显示这些更改。最后一行成功tooltiptext正确设置了文本,并且 UI 更改立即可见。我应该怎么做才能使更改在 UI 中可见?

4

1 回答 1

0

jQuery 似乎不适合这个特定目的,尽管它在其他情况下也能正常工作。改变labelandchecked属性的方法是使用普通的 javascript 方式:

//get the element that needs to be modified
var element = document.getElementById("extension-menupopup").childNodes[0];
element.setAttribute("checked", false);
element.setAttribute("label", "Disabled");

此外,请注意此错误以避免任何陷阱。

于 2013-04-02T16:02:10.233 回答