所以我试图在JS Bin中重现这个,但我无法让dojo工作。在chrome和firefox上也一样。
我有一个复选框和一个dojo ready函数,看起来像
dojo.ready(function() {
dijit.byId('checkbox1').checked = true;
});
现在,当呈现页面时,checked = true成功执行,但是没有出现复选框,请检查你是否在鼠标之外!
它就像浏览器没有在复选框上重新绘制区域一样。将鼠标悬停在复选框上,浏览器重新绘制它,以便您可以看到勾号。
之前有人遇到过这个问题吗?
答案 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),您的复选框应该看起来像而不是