Dojo: Как да деактивирам TabBarButton?

Как мога да деактивирам 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");

    }

person Ken Vernaillen    schedule 26.09.2013    source източник


Отговори (2)


Можете да зададете кликване на false. Това е параметър в родителската _itembase.

Вашата връзка към документ може да е остаряла, можете да намерите този параметър в _itembase изходен код.

person Sean Zhao    schedule 26.09.2013
comment
В документацията на itembase не се казва, че ако зададете clickable на false, onclick на джаджата няма да работи. Ако е зададено на true, върху елемента става кликване дори ако местоназначението на прехода (moveTo и т.н.) не е посочено. Ако задам clickable на false, пак мога да щракна върху него. (Свързах lang.hitch към елемента) - person Ken Vernaillen; 30.09.2013
comment
Можете ли да опитате onclick вместо onClick, вижте тази статия - person Sean Zhao; 30.09.2013

Създадох моя собствена джаджа, защото това не беше функционалност по подразбиране на 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);
            }

        });
    });
person Ken Vernaillen    schedule 03.10.2013