2016-11-10 4 views
0

Ich verwende ein Diagramm, um ein Kreisdiagramm für meine App zu erstellen. Ich habe:So fügen Sie der Elementklasse in EXTJs eine Klasse hinzu

Ext.query('.highcharts-container') 

das mir eine Reihe von highchart-Container gibt, und ich möchte eine benutzerdefinierte Klasse zu jedem von ihnen hinzuzufügen, um einige benutzerdefinierte CSS hinzufügen. Ich versuchte:

Ext.query('.highcharts-container').addCls("test") 

aber sagt "addcls" ist keine Funktion. unten ist die img, wie es aussieht:

enter image description here und werden nach den Antworten unten, habe ich versucht, es in eigener App hinzufügen, und es funktioniert, aber aus irgendeinem Grund in diesem Fall ist es konstant zeigt undefined.no Hinweis whts geht es weiter?

+0

Beachten Sie, dass die Geige Sie auf dem Laufenden ungültig ist, hat es Syntaxfehler drin. –

+0

Schauen Sie sich das Protokoll an, es gibt keine Elemente, die 'd' entsprechen. Wie auch immer, es sei denn, du postest einen echten Testfall, wir können nicht helfen, wir können nicht jeden möglichen Fehler erraten, der vielleicht falsch gelaufen ist. –

Antwort

0

Ext.query gibt ein Array von übereinstimmenden Komponenten zurück. Wenn Sie sicher, es sind immer genau 1 Element im Array, können Sie verwenden:

Ext.ComponentQuery.query('.highcharts-container')[0].addCls("test") 

Andernfalls sollten Sie Schleife durch die Elemente und fügen Sie die Klasse zu jeder Komponente.

Ext.ComponentQuery.query('.highcharts-container').forEach(function (item) { 
    item.addCls("test"); 
}); 
+0

Ich habe den ersten Fall versucht: es err: Ext.query (...) [0] .addCls ist keine Funktion. auch wenn ich die zweite ex versuchte: es heißt: Ext.query ("..."). jeder ist keine funktion, ist das ein versionsproblem? – user1234

+0

Es sollte "forEach" anstelle von "each" sein. Die Antwort ist korrigiert. Sie können auch 'Ext.ComponentQuery.query ('chart')' verwenden, wenn dies die einzigen Diagramme sind, die Sie verwenden. – chrisuae

+0

sicher, das forEach gelöst, aber immer noch die "addcls" err kommt weiter. Ich bekomme immer noch das: "TypeError: item.addCls ist keine Funktion (...)" .. gibt es einen anderen Weg? – user1234

1

Ext.query gibt ein Array zurück. Verwenden Sie stattdessen Ext.select, die eine CompositeElement zurückgibt. Es lässt Sie Ext.dom.Element Methoden auf eine Gruppe von Elementen aus:

Ext.select('.highcharts-container').addCls("test");

+0

sagt undefined wieder..ist es etwas falsch mit der Version wenn extjs im verwenden? – user1234

+0

Ich bezweifle es. Ich schlage vor, dass Sie einen Testfall veröffentlichen. Hier ist 'Ext.select', das eine Klasse hinzufügt: https://fiddle.sencha.com/#fiddle/1k7j –

Verwandte Themen