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

时间:2012-04-19 14:17:00

标签: javascript dojo

所以我试图在JS Bin中重现这个,但我无法让dojo工作。在chrome和firefox上也一样。

我有一个复选框和一个dojo ready函数,看起来像

dojo.ready(function() {
    dijit.byId('checkbox1').checked = true;
});

现在,当呈现页面时,checked = true成功执行,但是没有出现复选框,请检查你是否在鼠标之外!

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

之前有人遇到过这个问题吗?

2 个答案:

答案 0 :(得分:4)

您需要使用:

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

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

答案 1 :(得分:2)

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

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

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

所以,请确保你包含一个dojo主题css文件(claro.css for me)和你的css。并确保html上的<body>标记包含class="claro"或您正在使用的任何主题。

使用精灵表(再次,在本例中为claro),您的复选框应该看起来像dojo claro-theme checkbox而不是html checkbox