Ich habe eine extjs 3.4 Taste, die wie eine Toggle-Button wirken, unter dem Code sehen:ExtJs Taste - Text ändern und cls auf Klick Zuhörer
this.advanceFilterToggleBtn = {
xtype: 'button',
id: 'advancedSearchLink',
text: 'More Filter Options',
iconCls: 'button-more-filter-options',
width: '150',
listeners: {
click: function(btn, el){
// do stuff
if(this.text === 'More Filter Options'){
// do some more stuff
this.text = 'Less Filter Options';
this.iconCls = 'button-less-filter-options';
}else {
this.text = 'More Filter Options';
this.iconCls = 'button-more-filter-options';
}
}
}
der Text und die Klasse auf der Schaltfläche Änderungen können i Bestätigen Sie das, aber die Anzeige wird nicht aktualisiert. Das bedeutet, dass es immer noch denselben Anfangstext und denselben Chevron zeigt. Ich habe Haltepunkte in Chrome-Dev-Tools und sowohl die If und Else-Blöcke werden getroffen.
Ich habe versucht, die setText und setIconCls des btn-Objekts durch den Klick-Listener statt "this" übergeben, aber es funktioniert nicht. der Else-Block wird in diesem Fall nicht getroffen.
Ich habe versucht, die this.text und this.iconCls am Anfang der if und sonst blockiert, aber kein Glück.
jede Hilfe geschätzt.
Dank
Verwenden 'this.setText ('Weniger Filteroptionen')' und 'this.setIconClass ('Button-less-Filter-Optionen')' –
@YasuyukiUno i Ihren Vorschlag versucht gerade jetzt und ich denke jetzt, ich sollte über diese eine Funktion hinausschauen, um herauszufinden, was den Text und die Klasse daran hindert, sich zu ändern. –