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