2013-09-27 5 views
1

저는 extjs의 초보자입니다 (ext.js 4.1 사용). 아직 배우지 만, 지금해야 할 일은 조금 까다 롭습니다. 경험 많은 개발자의 조언을 받기를 원합니다. 문제는이 버튼에 대한된다일부 버튼에 청취자를 추가하는 방법 extjs

{ 
    xtype : 'checkboxgroup', 
store : checked, 
columns : 3, 
vertical : false, 
singleSelect: true, 
items : [ 
{ 
    xtype: 'button', 
    text: 'name', 
    width: 75, 
    toggleGroup: 'mygroup', 
    enableToggle: true 
}, { 
    xtype: 'button', 
    text: 'email', 
    width:75, 
    toggleGroup: 'mygroup', 
    enableToggle: true 
}, { 
    xtype: 'button', 
    text: 'id', 
    width: 75, 
    toggleGroup: 'mygroup', 
    enableToggle: true 
} 
], 
listeners : 
{ 
    'change' : 
// store checked field 
function(th, newValue, oldValue) { 
    var ics = th.items.items; 
    for (i = 0; i < 3; i++) { 
     checked[i] = ics[i].checked; 
     } 
} 
} 
} 

당신이 리스너가 볼 수 있듯이, 그것은 (내가 지금 변화하고있어 한 번에 하나를 검사 할) 버튼은 체크 박스있을 때 일하고 있었다. 이제는 청취자를 더 많은 청취자 (각 버튼마다 하나씩)로 변경해야한다고 가정합니다. 그러나 질문은 다음과 같습니다.

  • 버튼의 값을 어떻게 얻을 수 있습니까?

  • 함수의 매개 변수 수준에서 리스너의 기능을 어떻게 구성해야합니까?

  • 내가 변경해야 할 것입니다 가게를 필터 변수 ...

내가 this 대답에서 복사 해요 "를 선택",하지만 여전히 작동하지 않습니다. 이벤트를 등록하지 않습니다.

답변

1

버튼에 수신기를 추가하는 것은 매우 간단합니다. 그것은 바텀 함수를 바깥에있는 함수로 묶는 것이 어렵습니다. 그러나 버튼의 수신기는 다음과 같습니다.

{ 
    xtype: 'button', 
    text: 'name', 
    width: 75, 
    toggleGroup: 'mygroup', 
    enableToggle: true, 
    listeners: { 
    click: function() { 
    //this == the button, as we are in the local scope 
     this.setText('I was clicked!'); 
    }} 
} 
관련 문제