【问题标题】:Dojo: How to disable a TabBarButton?Dojo:如何禁用 TabBarButton?
【发布时间】:2013-09-26 14:04:00
【问题描述】:

如何禁用 TabBarButton? 我希望它是不可点击的灰色。

指南中没有设置任何参数。 https://dojotoolkit.org/reference-guide/1.9/dojox/mobile/TabBarButton.html

    createFooter : function() {

       this.inherited(arguments);

       this.footer = new Footer({}, this.footerNode);

       this.settingsBtn = new TabBarButton(
         {
          clickable:false,
          icon : "images/settingsIcon.png",
         }, domConstruct.create("li"));

       this.footer.addChild(this.settingsBtn);

       this.settingsBtn.onClick = lang.hitch(this, "settings");

      },

      settings : function() {

       alert("settings started");

    }

【问题讨论】:

    标签: ibm-mobilefirst dojo dojox.mobile


    【解决方案1】:

    您可以将 clickable 设置为 false。它是父 _itembase 中的一个参数。

    您的文档链接可能已过期,您可以在 _itembase 源代码中找到此参数。

    【讨论】:

    • itembase 的文档没有说明如果您将 clickable 设置为 false,则小部件的 onclick 将不起作用。如果设置为 true,则即使未指定转换目标(moveTo 等),该项目也可单击。如果我将可点击设置为 false,我仍然可以点击它。 (我将 lang.hitch 链接到该项目)
    • 你能不能试试onclick而不是onClick,见this article
    【解决方案2】:

    我创建了自己的小部件,因为这不是 tabbarButton 的默认功能。 这是我的代码:

        define([
            "dojo/_base/declare",
            "dojo/_base/lang",
            "dojo/on",
            "dojo/dom-class",
            "dojox/mobile/TabBarButton"
        ], function(declare, lang, on, domClass, TabBarButton) {
            return declare("TabBarButtonDisable",[TabBarButton], {
    
                onClickBackup:null,
                isDisabled : false,
    
    
                _setIsDisabledAttr : function(isDisabled) {
                    this.isDisabled = isDisabled;
                    this.renderIsDisabled();
                },
                _getIsDisabledAttr : function() {
                    return this.isDisabled;
                },
    
                renderIsDisabled : function() {
                    if (this.isDisabled) {
                        domClass.add(this.domNode, "disabled");
                        this.onClick = function(){
                    // isDisabled
                        };
                    } else {
                        domClass.remove(this.domNode, "disabled");
                        this.onClick = this.onClickBackup;
                    }
                },
    
                buildRendering : function() {
                    this.inherited(arguments);
                    this.onClickBackup = this.onClick;
                },
    
                postCreate: function() {
                    this.inherited(arguments);
                }
    
            });
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多