Aufklappen flott, zuklappen lahm...
Manu
- javascript
Hallo zusammen,
ich dünne gerade eine JS-Funktion aus die mir TableRows öffnet und schließt.
Ich habe ein übergeordnetes Gesamtsegment, darunter mehrere Untersegmente (darunter wiederum welche, die betrachte ich momentan nicht), in denen jeweils zwischen 19 und 59 Elemente aufgelistet sind.
Anfangs wird mein Gesamtsegment gezeigt, bei per onclick werden die untergeordneten Segmente gezeigt. Das funktioniert mit meiner Funktion recht schnell (1-2 sek.).
Zum Schließen benutze ich die selbe Funktion, aber hier dauert der Schließvorgang ca. 40-50 sek. Mir ist nicht klar, warum bzw. wie ich den Vorgang beschleunigen könnte.
Die Funktion baue ich via php zusammen, daher stammt die if-else-Kaskade.
function toggleSegmenteRows (id) {
var minusrowspan;
var row;
var myRows = new Array('','verbr_','lg_','al_','gu_','gdp_','kn_','ugg_','ust_','urb_','uges_','dp_');
var mySegments = new Array ();
var rowspanrow;
var mySegs2Close = new Array ();
var kompcount = 10+1;
var rowspan = 18;
var myParents = new Array(274, 290, 303, 310);
if(id == 'gesamt') {
mySegments.push("274");
mySegments.push("290");
mySegments.push("303");
mySegments.push("310");
} else {
if(id == 274) {
mySegments.push("275");
mySegments.push("280");
mySegments.push("285");
} else {
if(id == 275) {
mySegments.push("276");
mySegments.push("277");
mySegments.push("278");
} else {
[usw.]
}
myArr = mySegments;
if(id == 'gesamt') {
if(row = document.getElementById('tr_' + mySegments[0] + '_' + 1)) {
if(row.style.display == '') {
myArr = mySegs2Close;
var closeall = 1;
for (var u = 0;u < mySegments.length; u++) {
removeHidden(mySegments[u],'seg');
}
}
}
}
for(var i = 0; i < myArr.length; i++) {
for(var j = 1; j <= 19; j++) {
if(row = document.getElementById('tr_' + myArr[i] + '_' + j)) {
if(row.style.display == 'none' && closeall != 1) {
row.style.display = '';
} else {
row.style.display = 'none';
}
}
}
if(closeall == 1) {
toggleImagePlus ('img_togglesegmenterows_' + myArr[i]);
if(rowspanrow = document.getElementById('td_' + myArr[i])) {
rowspanrow.setAttribute("rowspan",rowspan);
}
} else {
addHidden(myArr[i],'seg');
}
}
Für Ideen sehr dankbar,
Manu
Hallo,
.. bin weit davon entfernt, deinen Code zu verstehen. Fürchte aber, dein HTML ist nicht valide: Validator
sieht so aus, als gäbe es Elemente mit den Ids "274","275", .... das ist unzulässig
rowspanrow.setAttribute("rowspan",rowspan);
td-Elemente kennen zwar das Attribut rowspan, aber in js wird es "rowSpan" http://de.selfhtml.org/javascript/objekte/htmlelemente.htm#td@title=javascript/objekte/htmlelemente.htm#td geschrieben
Gruß plan_B
Hallo!
.. bin weit davon entfernt, deinen Code zu verstehen. Fürchte aber, dein HTML ist nicht valide: Validator
Validiert alles.
Das von mir gepostete ist allerdings eine JavaScript-Funktion, die natürlich in Script-Blöcken steht. oO
sieht so aus, als gäbe es Elemente mit den Ids "274","275", .... das ist unzulässig
Wo?
rowspanrow.setAttribute("rowspan",rowspan);
td-Elemente kennen zwar das Attribut rowspan, aber in js wird es "rowSpan" http://de.selfhtml.org/javascript/objekte/htmlelemente.htm#td@title=javascript/objekte/htmlelemente.htm#td geschrieben
Da magst Du recht haben - es funktioniert allerdings in FF, IE6, IE7...Habs angepaßt, aber das Zuklappen hat sich nicht beschleunigt.
Gruß,
Manu