0

これは私のHTMLコードです:

<div id="contextToolBar" class="dijitToolbar xwtContextualToolbar" wairole="menubar" role="menubar" widgetid="contextToolBar">

<table class="xwtContextualToolbarRibbonContainer" cellspacing="0" cellpadding="0" border="0" dojoattachpoint="_contextualToolbarTable">

<tbody class="xwtContextualToolbarRibbonContainerTB">
<tr class="xwtContextualToolbarRibbonContainerTR">
<td> </td>

<td class="xwtContextualToolbarRibbonContainerTD" vertical-align="top" cellspacing="0" cellpadding="0"> </td>

<td vertical-align="top">
***<div class="xwtQuickFilter" dojoattachpoint="quickFilterNode">***
</td>
</tr>
</tbody>
</table>
</div>

前に別のdivを追加したいのですが、JSで次のことを行っています:

var flagId =dojo.query("#contextToolBar .xwtContextualToolbarRibbonContainer .xwtContextualToolbarRibbonContainerTB .xwtContextualToolbarRibbonContainerTB .xwtQuickFilter");

var n = dojo.create("div",  {
    id: "informationDialog", 
    dojoType: "dijit.form.Button", 
    iconClass: "xwtContextualIcon xwtContextualAddRow", 
    showLabel: "false", 
    onclick: "return showClusterInstallationDialog();"
}, flagId, "first");

しかし、私はTypeError: doc is undefined. flagIdきちんと取れていないと思います。私は何を間違えましたか?

次に、domConstruct.createの代わりに使用しようとしdojo.createましたが、エラーが発生しましたundefined

4

3 に答える 3

0

どのバージョンの Dojo を使用していますか? dojo 1.7 以降を使用している場合は、これが正しいことだと思います。それは dojo/ready モジュールです。また、 dojo/domReadyもあります。私が完全に間違っていなければ、これを使用できます。

于 2013-06-10T21:14:20.703 に答える
0

まず第一に、HTML コード内に Javascript や CSS を配置しないでください。これにより、コードが読みにくく、保守できなくなります (それが単語の場合)。ファイルのおもちゃを分けておくと、生活が楽になります。

要素を別の要素の前に配置するには、domConstruct を使用する必要がありますが、ページの読み込みが完了した後にすべての関数を呼び出す必要があります。

JavaScript コードを記述し、それを HTML コードに挿入すると、実際のページや探している要素よりも前にコードが読み込まれることがあります。この問題を解決するには、dojo readyを使用し、その中から他の関数​​を呼び出し / 登録します。

お役に立てれば

于 2013-06-03T11:24:22.143 に答える