Javascript 选中dojo复选框,但直到鼠标悬停才显示

Javascript 选中dojo复选框,但直到鼠标悬停才显示,javascript,dojo,Javascript,Dojo,所以我试着在JS-Bin中复制这个,但是我无法让dojo工作。在chrome和firefox上也是如此 我有一个复选框和一个dojo就绪函数 dojo.ready(function() { dijit.byId('checkbox1').checked = true; }); 现在,当页面呈现时,checked=true将成功执行,但是直到您将鼠标悬停在其上,复选框才会显示为check 就像浏览器没有在复选框上重新绘制区域一样。在复选框上挥动鼠标,浏览器会重新绘制它,以便您可以看到勾号

所以我试着在JS-Bin中复制这个,但是我无法让dojo工作。在chrome和firefox上也是如此

我有一个复选框和一个dojo就绪函数

dojo.ready(function() {
    dijit.byId('checkbox1').checked = true;
});
现在,当页面呈现时,checked=true将成功执行,但是直到您将鼠标悬停在其上,复选框才会显示为check

就像浏览器没有在复选框上重新绘制区域一样。在复选框上挥动鼠标,浏览器会重新绘制它,以便您可以看到勾号

以前有人遇到过这种情况吗?

您需要使用:

dijit.byId('checkbox1').set('checked', true)

而不是直接设置属性。所有小部件都应遵循此约定,因为您永远不知道在更改属性值时可能需要什么其他处理。

对我来说,问题是我没有正确加载小部件的css

Dojo的复选框是使用sprite表而不是原生html复选框显示的

通过隐藏spritesheet图像并显示支持它的常规html复选框,我已经覆盖了dojo的css(我使用的是claro主题)

因此,请确保在css中包含一个dojo主题css文件(claro.css对我来说)。并确保html上的
标记具有
class=“claro”
或您正在使用的任何主题


对于sprite工作表(在本例中是claro),您的复选框应该看起来不

这对于通过编程创建的我的小部件来说是不够的。非常感谢。这对我来说是一个非常简单的解决方案。