如何将事件附加到dojox.mobile.heading';背面';按钮

如何将事件附加到dojox.mobile.heading';背面';按钮,dojo,dojox.mobile,Dojo,Dojox.mobile,除了“后退”按钮按预期运行外,我还需要异步调用一个函数来更新一些db表和刷新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.b

除了“后退”按钮按预期运行外,我还需要异步调用一个函数来更新一些db表和刷新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();
}); 
事实证明,“.\u body”属性必须由我恰好用作我的应用程序的主UI组件的Accordion小部件共享,任何尝试与Accordion交互的行为都会使我的整个应用程序无效

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

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


想法?

以下应该可以做到:

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

  • 上面的代码应该通过dojo/ready调用来执行,以避免在填充dijit的widget注册表之前使用它。看
  • 注意事件名称的大小写:“onClick”(而不是“onClick”)
  • 由于不知道您使用的是什么Dojo版本(请在提问时始终包含Dojo版本信息),我保留了您的AMD之前的语法,这在最近的Dojo版本(1.8、1.9)中是不推荐的。有关详细信息,请参阅

谢谢Adrian,它在dojo 1.9中工作得非常完美,并将很快在dojo 1.8中对其进行测试,因为我的项目可能由于与此问题无关的其他问题而不得不退回到1.8。
var backButton = dijit.registry.byId("hdgSettings").backButton;
if (backButton) {
  dojo.connect(backButton, "onClick", function() { ... });
}