在运行时渲染DOM在Dojox中不起作用

时间:2013-10-10 13:03:39

标签: javascript ibm-mobilefirst dojo

我在这里做的是,我正在以编程方式在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?请帮我。感谢

1 个答案:

答案 0 :(得分: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>