除了按预期运行的“后退”按钮之外,我还需要异步调用一个函数来更新一些数据库表并刷新 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,那就这样吧,但是必须有一种方法可以干净地将事件附加到内置的“后退”按钮支持。
想法?