我在试着用dojox.widget.Standby。我希望待机代码在其他代码执行时显示,然后在代码执行完成后隐藏。但是,我的待机状态似乎只在我调用standby.hide()时显示。代码如下:
standby = new dojox.widget.Standby({
target : "map-id"
});
<div id="map-id" class="centerPanel"
data-dojo-type="dijit.layout.ContentPane"
data-dojo-props="region: 'center', style: 'width: 1300px;'">
<span id="toolbar"></span>
<div id="co-ords" style="position:absolute; bottom:0px; z-index:1000; font-size:8; font-weight:bold; background-color: #FFFFFF"></div>
</div>有人知道是怎么回事吗?我也在努力使用dojo.connect来捕获onShow事件...
dojo.connect(standby, "onShow", function(){
console.log("standby onShow");
})谢谢!
更新-调用standby.hide()在FireFox中显示我的小部件,但不显示Chrome
发布于 2012-05-22 20:49:03
显示和隐藏调用之间的代码是否恰好是同步的xhrget/xhrpost ajax调用?当ajax调用完成后,所有浏览器操作完全停止,因此待机动画只会在sync=true调用完成后快速显示和隐藏,同时调用.hide()。如果是这样,并且您有多个调用需要同步操作,那么您可以将它们设置为异步,并在其响应函数中将它们链接在一起。
发布于 2012-04-25 22:02:14
我发现,在创建备用小部件时,我总是需要添加以下行:
dojo.body().appendChild(standby.domNode);发布于 2013-09-27 09:18:37
如果你真的需要同步呼叫,而不是使用待机,你可以尝试这样做...
dojo.byId('loading_status').innerHTML='Loading 0%...';
sync_ajax_call_1();
dojo.byId('loading_status').innerHTML='Loading 25%...';
sync_ajax_call_2();
dojo.byId('loading_status').innerHTML='Loading 50%...';
sync_ajax_call_3();
dojo.byId('loading_status').innerHTML='Loading 75%...';
sync_ajax_call_4();
dojo.byId('loading_status').innerHTML='Loading 100%...';dojo.byId还可以替换为dom.byId或$(在jquery中)或getElementById
https://stackoverflow.com/questions/10317209
复制相似问题