【问题标题】:how to attach an event to dojox.mobile.heading 'back' button如何将事件附加到 dojox.mobile.heading '返回'按钮
【发布时间】:2013-08-04 16:56:49
【问题描述】:

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

想法?

【问题讨论】:

    标签: dojo dojox.mobile


    【解决方案1】:

    以下应该可以解决问题:

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

    备注:

    【讨论】:

    • 谢谢 Adrian,它在 dojo 1.9 中完美运行,并且由于与此问题无关的其他问题,我的项目可能不得不退回到 1.8,因此很快将在 dojo 1.8 中对其进行测试。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    • 2012-12-21
    • 2013-01-03
    相关资源
    最近更新 更多