0

除了按预期运行的“后退”按钮之外,我还需要异步调用一个函数来更新一些数据库表并刷新 UI。

在发表这篇文章之前,我做了一些研究并尝试了以下内容......

<h1 data-dojo-type="dojox.mobile.Heading" id="hdgSettings" data-dojo-props="label:'Settings',back:'Done',moveTo:'svStart',fixed:'top'"></h1>

dojo.connect(dijit.registry.byId("hdgSettings"), "onclick",   
    function() {
        if (gblLoggerOn) WL.Logger.debug(">> hdgSettings(onclick) fired...");
        loadTopLvlStats();
}); 

由于我的标题除了“后退”按钮之外没有任何其他小部件,我认为将此事件附加到它会解决我的问题......它什么也没做。所以我把它改成了这个......

dojo.connect(dijit.registry.byId("hdgSettings")._body, "onclick",   
    function() {
        if (gblLoggerOn) WL.Logger.debug(">> hdgSettings(onclick) fired...");
        loadTopLvlStats();
}); 

事实证明,'._body' 属性必须由 Accordion 小部件共享,我碰巧将它用作我的应用程序的主要 UI 组件,并且任何与 Accordion 交互的尝试都会使我的整个应用程序无用。

作为最后的手段,我想我可以简单地放弃使用内置的“返回”按钮,而只需将我自己的 tabBarButton 放在标题上来控制我的应用程序的转换和事件处理。

如果社区建议我使用我自己的 tabBarButton,那就这样吧,但是必须有一种方法可以干净地将事件附加到内置的“后退”按钮支持。

想法?

4

1 回答 1

1

以下应该可以解决问题:

var backButton = dijit.registry.byId("hdgSettings").backButton;
if (backButton) {
  dojo.connect(backButton, "onClick", function() { ... });
}

评论:

于 2013-08-08T15:15:49.243 回答