0

私がここでやっていることは、プログラムで div (id="euiview") に DOM (チェックボックスを持つ) をレンダリングしていることです。私のコードは

var iHtml='<span><input type="checkbox" id="cbox" data-dojo-type="dojox.mobile.CheckBox" onclick="toggleCheckbox()" class="addremove-check"><label for="cbox"> E&amp;U Imperatives </label> </span></p><p><span><input type="checkbox" id="cbox1" data-dojo-type="dojox.mobile.CheckBox" class="addremove-check"><label for="cbox1"> Transform the utility network </label></span></p>';

domConstruct.place(iHtml,"euiview");

私はhtmlページにdivを持っています。

  <div id="euiview" data-dojo-type="dojox.mobile.View">

    </div>

問題は、一部の Android デバイス ブラウザでチェック ボックスをオンまたはオフにできないことですが、デスクトップ ブラウザでは問題なく動作しています。この方法で html をレンダリングできますか、またはプログラムで DOM を作成する必要がありますか? 私を助けてください。ありがとう

4

1 に答える 1

1

ページをいつ解析するかによって異なります。新しい HTML を追加した後にページを解析する場合、問題はありません。ただし、新しい HTML を追加する前にページを解析すると、Dojo はその DOM をウィジェットに解析しないため、チェックボックスは機能しません。

DOM の読み込み時にページを解析していると想定しているため、最初に何が実行されるかに大きく依存します。うまくいくかもしれない解決策は次のとおりです。

var iHtml='<div id="new-content"><p><span><input type="checkbox" id="cbox" data-dojo-type="dojox.mobile.CheckBox" onclick="toggleCheckbox()" class="addremove-check"><label for="cbox"> E&amp;U Imperatives </label> </span></p><p><span><input type="checkbox" id="cbox1" data-dojo-type="dojox.mobile.CheckBox" class="addremove-check"><label for="cbox1"> Transform the utility network </label></span></p></div>';

domConstruct.place(iHtml,"euiview");
parser.parse("new-content");

これにより、新しいコンテンツが解析されていることを確認できます。また、タグを閉じていることに気付きましたが、その前</p>に a を付けていませんでし<p>た。

于 2013-10-10T13:29:08.853 に答える