2011-10-04 59 views

回答

3

使用此功能可將分接頭偵聽器添加到標籤元素。

{ 
    id: 'username', 
    xtype: 'checkboxfield', 
    name : 'username', 
    label: 'User Name', 
    listeners:{ 
     labelEl:{ 
      tap:function(){ 
       var obj = Ext.getCmp('username'); 
      if(obj.isChecked()){ 
        obj.uncheck(); 
       }else{ 
        obj.check(); 
       } 
      } 
     } 
    } 
} 
+0

有沒有內置如何讓標籤點擊切換/聚焦底層元素? – binarious

+0

沒有,親自看看http://dev.sencha.com/deploy/touch/docs/?class=Ext.form.Checkbox – ilija139

+0

好的,謝謝! – binarious

5

如果你想實現在煎茶觸摸2相同,您可以使用radiofields或複選框如下:

defaults: { 
    xtype: 'radiofield', 
    name: 'fieldname', 
    listeners: { 
     // Adding listener for tap event on label element, 
     // this should toggle the checkbox. 
     "tap": { 
      element: "label", 
      fn: function() { 
       var me = this; 
       me.setChecked(!me.isChecked()); 
      }, 
     } 
    } 
} 

編輯:顯然,「click」事件應該是「龍頭」 ,根據@ jayteejee。相應地將原始的「點擊」監聽器改變爲「輕敲」監聽器。

+0

適用於Android,瀏覽器,但不適用於iphone –

+0

您有什麼建議可以讓我在iPhone中使用它? –

1

Thijs的回答有小的調整運作良好,得到它在Android和iOS的工作與煎茶觸摸2.只要改變‘點擊’自來水

{ 
    xtype: 'checkboxfield', 
    name: 'fieldname', 
    label: 'Label', 
    listeners: { 
     tap: { 
      element: "label", 
      fn: function() { 
       this.setChecked(!this.isChecked()); 
      } 
     } 
    } 
} 
+0

謝謝,但它似乎與ilija139的答案一樣。 – binarious

+0

好點,只是發現Ext.getCmp()調用是不必要的,並不容易適用於動態生成的字段,所以認爲組合的解決方案會更優雅。 – jayteejee

+0

是的,你是對的。您的實施更簡單,更清潔。 – binarious