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>标签,但你没有<p>在它前面放一个。

于 2013-10-10T13:29:08.853 回答