dojo.place的oncomplete事件
我有很多ajax调用,内容由dojo.place插入。我在新内容中有dojo小部件,因此我必须在内容“放置”后执行dojo.parser.parse() 问题是我找不到执行这个的方法。如果我把代码放在下一行,我会很快被执行。我不得不把它放在setInterval命令中,但这是一个垃圾解决方案dojo.place的oncomplete事件,dojo,Dojo,我有很多ajax调用,内容由dojo.place插入。我在新内容中有dojo小部件,因此我必须在内容“放置”后执行dojo.parser.parse() 问题是我找不到执行这个的方法。如果我把代码放在下一行,我会很快被执行。我不得不把它放在setInterval命令中,但这是一个垃圾解决方案 dojo上的oncomplete事件。放置任何人。非常感谢您的帮助。不幸的是,您需要设置超时,因为浏览器不会同步呈现DOM更改。正如Opera博客中所解释的: 下面是一个伪代码示例: headlineEle
dojo上的oncomplete事件。放置任何人。非常感谢您的帮助。不幸的是,您需要设置超时,因为浏览器不会同步呈现DOM更改。正如Opera博客中所解释的: 下面是一个伪代码示例:
headlineElement.innerHTML = "Please wait...";
performLongRunningCalculation();
headlineElement.innerHTML = "Finished!";
在Internet Explorer和Mozilla中
文本“请稍候…”将永远不会显示
显示给用户,如更改所示
仅在整个脚本之后渲染
已经完成了。另一方面,在歌剧中
另一方面,“请稍候…”文本是
在计算结束时显示
跑步
SO中几乎没有类似的问题:
var d = document.createElement("div");
d.innerHTML = returned_html;
然后可以解析新的div,在使用dojo.place将新节点添加到文档之前创建小部件
dojo.parser.parse(d);
dojo.place(d, ref_node, "last");
place()是同步的,因此在place调用之后立即调用解析器应该不是问题。听起来问题在于您在XHR完成之前调用了解析器。您的服务返回的数据是什么样子的?你能以编程方式与Delcarative方式创建DIJIT吗?