javascript - dijit/MenuItem 已禁用但不会自动变灰

标签 javascript dijit.form

我在 JS Canvas 对象的弹出菜单中使用了 dijit/MenuItem。当用户右键单击 Canvas 时,我想显示菜单并根据用户选择的位置禁用某些项目。因此,我在 Canvas 的 onmousedonw 事件中编写代码以禁用该项目。

一切正常,除了当我右键单击并且菜单项从启用变为禁用时,菜单中的项目仍然显示为正常状态,直到我将鼠标移到它上面然后它显示为灰色为禁用。有没有一种方法可以在更改禁用状态后以某种方式“刷新”菜单项,以便在菜单显示时立即显示为灰色?

菜单的 HTML

<ul dojoType="dijit/Menu" id="menu" style="display: none;border-radius:3px;">
<div dojoType="dijit/MenuItem" id="Popup_Cut"><span>Cut</span></div></ul>

禁用JS

function handleMouseDown(event) {

 if(...)
     dijit.byId("Popup_Cut").disabled = true;
}

最佳答案

不使用属性 disabled,而是使用 set 方法:

dijit.byId('Popup_Cut').set("disabled",true);

有同样的问题,这对我有用。

关于 set 的更多信息: http://dojotoolkit.org/reference-guide/1.8/dijit/info.html#set-and-get

关于javascript - dijit/MenuItem 已禁用但不会自动变灰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13746037/

相关文章:

javascript - 如何在不切换到 TypeScript 的情况下将 TypeScript 类型添加到 JavaScript 模块?

image - dijit.form.button 与程序化的 img src

javascript - 道场/迪 git : set entries id attribute in select

Javascript - 将索引传递给 setInterval 回调

javascript - iOS 对话框中的 HTML 滚动问题

javascript - 如何使用 jQuery 在条件规则中设置 HTML 属性?

javascript - Dojo 中的“解析器返回未填充的 promise ”错误

javascript - 使用 jQuery 在更改事件上创建新的下拉菜单

javascript - 使用 Dojo 在控制台中显示来自表单的数据

javascript - 以编程方式设置 dijit/form/TimeTextbox