3

そこで、これをJS Binで再現しようとしましたが、道場を動作させることができませんでした。クロームとFirefoxでも同じです。

チェックボックスと道場対応機能があります。

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

これで、ページがレンダリングされると、checked = trueが正常に実行されますが、チェックボックスが表示されません。

ブラウザがチェックボックスの上の領域を再描画しなかったようです。チェックボックスの上にマウスを置くと、ブラウザがチェックボックスを再描画して、チェックボックスが表示されるようにします。

誰かが前にこれに出くわしますか?

4

2 に答える 2

4

あなたは使用する必要があります:

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

属性を直接設定する代わりに。属性値を変更するときに他にどのような処理が必要になるかわからないため、すべてのウィジェットでこの規則に従う必要があります。

于 2012-04-19T20:07:47.000 に答える
2

私にとっての問題は、ウィジェットの css を適切にロードしていなかったことです。

Dojo のチェックボックスは、ネイティブの html チェックボックスではなく、スプライト シートを使用して表示されます。

スプライトシートの画像を非表示にし、それを裏付ける通常の html チェックボックスを表示することで、道場の css (claro テーマを使用していました) をオーバーライドしました。

そのため、CSS に Dojo テーマの CSS ファイル (私の場合は claro.css) の 1 つを含めていることを確認してください。<body>HTMLのタグに、class="claro"使用しているテーマまたはその他のテーマがあることを確認してください。

スプライト シート (この場合も claro) を使用すると、チェックボックスは次のように表示されますDojo claro-theme チェックボックスhtmlチェックボックス

于 2013-09-24T23:04:40.700 に答える