delirium: Vergleichsfunktion: Keine globale Variablen in Opera

Beitrag lesen

Hallo,

um zwei dimensionale Arrays zu sortieren, habe ich mir folgende Vergleichsfunktion gebastelt, die ich mit "bla.sort(cmp2D)" aufrufe:

  
var orderBy = null;  
var orderDir = "asc";  
  
function cmp2D(a, b) {  
  //alert(this.orderDir);  
  if(a[this.orderBy] < b[this.orderBy]) {  
    if(this.orderDir == "asc")  
      res = -1;  
    else  
      res = 1;  
  } else if(a[this.orderBy] < b[this.orderBy]) {  
    if(this.orderDir == "asc")  
      res = 1;  
    else  
      res = -1;  
  } else  
    res=0  
  return(res);  
}  

Im FF und IE7 funktioniert es wie es soll, nur nicht im Opera.
Grund: Die global Variablen "this.orderBy" und "this.orderDir" sind in Opera "undefined" (im FF und IE haben sie den korrekten Inhalt).

Wie kann ich dafür sorgen, dass sie auch in Opera den richtigen Wert haben?

Vielen Dank,
delirium