2013-08-04 45 views
0

除了'后退'按钮功能正常,我需要异步调用一个函数来更新一些数据库表并刷新用户界面。如何将一个事件附加到dojox.mobile.heading'后退'按钮

此前做这个职位,我做了一些研究,并试图在这个下面......

<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属性必须通过折叠菜单,我只是碰巧我的应用程序的主UI组件使用共享,任何企图与手风琴渲染我的整个应用程序无用。

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

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

想法?

回答

1

下应该做的伎俩:

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

备注:

+0

谢谢阿德里安,它在dojo 1.9中完美地工作,并将在dojo 1.8中进行测试,因为其他问题与此问题无关,所以我的项目可能不得不退回到1.8。 – trbo

相关问题