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