Ergebnis 1 bis 10 von 10
  1. #1
    Avatar von Onkel-Tom
    Onkel-Tom ist offline Jungspund
    registriert
    15-05-2008
    Beiträge
    12

    Question Problem mit setInterval in einer Klasse

    Hallo Leute,

    ich habe ein Problem mit der nachfolgenden Code-Zeile bzw. der Fehlermeldung, wobei ich das Problem einfach nicht sehe.

    Code-Zeile:
    Code:
    this.intervalID['id' + i] = setInterval(this + ".animation(" + i + ",'up'," + end + "," + step), delay);
    Fehler:
    Code:
    missing ] after elements list 
          [object HTMLDivElement].animation(0,'up',0,3)
    Danke im Voraus für eure Hilfe.

  2. #2
    Avatar von Junkee[]
    Junkee[] ist offline Lounge-Member
    registriert
    08-05-2009
    Ort
    Leonberg
    Beiträge
    3.169

    AW: Problem mit setInterval in einer Klasse

    Weil du this an einen string hinzufügst wird this.toString() aufgerufen und das ist nicht das, was du erwartest.
    Code:
    var that = this;
    this.intervalID['id' + i] = setInterval(function() {
      that.animation(i, up, end, step);
    }, delay);

  3. #3
    Avatar von Onkel-Tom
    Onkel-Tom ist offline Jungspund
    registriert
    15-05-2008
    Beiträge
    12

    AW: Problem mit setInterval in einer Klasse

    Super, hat geklappt.....danke!
    Ich saß wohl einfach schon zu lange davor, ich war auch schon so weit mit "obj = this;" , nur hab ich dann nicht die Funktion in die Funktion geschachtelt, das war mein Fehler, mal ganz von dem Verständnisfehler mit dem toString() abgesehen ^^

  4. #4
    Avatar von Onkel-Tom
    Onkel-Tom ist offline Jungspund
    registriert
    15-05-2008
    Beiträge
    12

    AW: Problem mit setInterval in einer Klasse

    Ich hab jetzt doch noch ein kleine Rätsel gefunden, das mich etwas verwirrt.
    Die variable i hat innerhalb der setInterval Funktion den Wert 1, obwohl dieser eigentlich 0 sein sollte. Frag ich den Wert ausserhalb ab, ist er 0. Das verstehe ich auch nicht so wirklich. Der Wert i wird durch eine For-Schleife bestimmt, der aber nie auf den Wert 1 kommen kann, da die Bedingung dazu nicht erfüllt wird, zumindest mit dem getesteten Objekt.

    Vielleicht kann mir hier noch einer Licht ins dunkel bringen

  5. #5
    Avatar von Junkee[]
    Junkee[] ist offline Lounge-Member
    registriert
    08-05-2009
    Ort
    Leonberg
    Beiträge
    3.169

    AW: Problem mit setInterval in einer Klasse

    mehr Code!

  6. #6
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.760

    AW: Problem mit setInterval in einer Klasse

    Klingt nach so was:
    Code:
    for (var i = 0; i < 1; i++){
    	window.setTimeout(function(){alert(i)}, 0);
    }
    - klassisches Binding-Problem in Closures: in der Funktion wird die Variable i gebunden und nicht ihr Wert während des Erzeugens. Da nach dem Schleifendurchlauf die Variable 1 ist, wird auch 1 im alert ausgegeben. Um dieses Problem zu umgeben muss du eine weitere Kapselungsebene einfügen:
    Code:
    for (var i = 0; i < 1; i++){
    	window.setTimeout((function(i){return function(){alert(i)};})(i), 0);
    }

  7. #7
    Avatar von Onkel-Tom
    Onkel-Tom ist offline Jungspund
    registriert
    15-05-2008
    Beiträge
    12

    AW: Problem mit setInterval in einer Klasse

    Der betreffende Code-Block sieht so aus:

    Code:
    	case 'up':
    		this.css('overflow');
    		this.Style('overflow','hidden');
    		for(var i = 0; i < this.size; i++) {
    			this.tmpData[i] = [
    				this[i],
    				'clientHeight:' + this[i].clientHeight,
    				'offsetTop:' + this[i].offsetTop,
    				'lastChild:' + this[i].lastChild.parentNode.clientHeight,
    				'overflow:' + this.cssData[i]
    			];
    			var that = this;
    			this.intervalID['id' + i] = setInterval(function() { 
    				that.animation(i,'up',end,step); 
    			}, delay);
    		}
    		break;
    @kkapsner
    danke, für den hinweis, ich werde das gleich mal testen.

  8. #8
    Avatar von Junkee[]
    Junkee[] ist offline Lounge-Member
    registriert
    08-05-2009
    Ort
    Leonberg
    Beiträge
    3.169

    AW: Problem mit setInterval in einer Klasse

    kkapsner hat Recht.

  9. #9
    Avatar von Onkel-Tom
    Onkel-Tom ist offline Jungspund
    registriert
    15-05-2008
    Beiträge
    12

    AW: Problem mit setInterval in einer Klasse

    Alles klar, hat funktioniert....danke nochmal für eure Hilfe.

  10. #10
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.760

    AW: Problem mit setInterval in einer Klasse

    Bitte.

Ähnliche Themen

  1. setInterval DIV bewegen IE Problem
    Von Franticc im Forum JavaScript
    Antworten: 9
    Letzter Beitrag: 16-06-2008, 23:01
  2. setInterval auf Methode einer Klasse
    Von bluebyte im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 20-05-2007, 08:53
  3. Variablenzugiff in einer Klasse
    Von ray_ray im Forum JavaScript
    Antworten: 9
    Letzter Beitrag: 31-10-2005, 09:29
  4. Probleme mit Mausposition und einer Klasse
    Von ray_ray im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 24-10-2005, 16:49
  5. andere <A..> eigenschaften in einer klasse
    Von VincentPrice im Forum CSS und (X)HTML
    Antworten: 4
    Letzter Beitrag: 01-10-2004, 14:35

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •