2013-09-26 28 views
0

如何禁用TabBarButton? 我希望它是無法點擊和灰色的。Dojo:如何禁用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"); 

    } 

回答

1

我創建了我自己的小部件,因爲這不是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); 
      } 

     }); 
    }); 
1

您可以點擊設置爲false。它是父類_itembase中的一個參數。

您的文檔鏈接可能已過期,您可以在_itembase源代碼中找到此參數。

+0

itembase的文檔不說,如果你設置的假小部件的onclick行不通點擊。如果設置爲true,則即使未指定轉場目標(moveTo等),該項目也可以點擊。 如果我將clickable設置爲false,我仍然可以點擊它。 (我將lang.hitch鏈接到該項目) –

+0

你能發佈你的代碼嗎? –

+0

我收錄了我的代碼 –