Ergebnis 1 bis 8 von 8
  1. #1
    Bueddl ist offline Grünschnabel
    registriert
    25-01-2009
    Beiträge
    8

    probleme mit objekt und prototypenfunktion als event

    Hi,

    also ich hab da mal ein Problem^^ Und zwar isses so:

    HTML-Code:
    <div id='tagid'>
    
    </div>
    Ich hab ein Objekt, das einen neuen Tag "<div>" im dokuemnt erzeugen soll:

    Code:
    function thumbPictureObject() {
       //ich lege eine id fest, die brauche ich später, deshalb pack ichs in ne variable
      this.id = 'subtag';
       //jetzt erstelle ich meinen div...
       var neuerTag= document.createElement("div");
       //..gebe ihm seine id...
       neuerTag.id = this.id;
      ///...und binde ihn als Child von meinem existierended Tag ein. das klappt ja alles, aber....
       document.getElementById('tagid').appendChild(neuerTag);
      //wenn ich jetzt das event zuweise, wird es SOFORT, ohne,dass ich das Event auslöse, ausgeführt.
       document.getElementById(this.id).onclick = this.Open();
    }
    
    thumbPictureObject.prototype.Open = function() {
      alert('blubb');
    }
    wenn ich jetzt das objekt erstelle...

    Code:
    var test = new thumbPictureObject();
    ...wir die funktion aufgerufen,ohne das ichnur einen klick mache...und jetzt die unausweichliche Frage: Wieso verdammt^^

    Ich komm da echt nicht weiter, wäre nett, wenn irh mit heir helfen könnten. Danke und viele Grüße,
    Sebastian

  2. #2
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.667

    AW: probleme mit objekt und prototypenfunktion als event

    onklick erwartet eine funktionsreferenz
    Code:
    document.getElementById(this.id).onclick = this.Open;
    du führst die funktion aus und weist das ergebnis zu.
    dann ist dein this ein anderes, wenn der event ausgeführt wird.
    Code:
    function saveThis(obj)
    {
      return obj.Open;
    }
    document.getElementById(this.id).onclick = saveThis(this);

  3. #3
    dewey_89 ist offline Mitglied
    registriert
    27-12-2008
    Ort
    Sandl
    Beiträge
    42

    AW: probleme mit objekt und prototypenfunktion als event

    PHP-Code:
    function thumbPictureObject() {
        ...
        
    document.getElementById(this.id).onclick = function() {
            
    alert('blubb');
        }


  4. #4
    Bueddl ist offline Grünschnabel
    registriert
    25-01-2009
    Beiträge
    8

    AW: probleme mit objekt und prototypenfunktion als event

    ok, das hab ich mal so gemacht, aber weiso kann ich in der prototypen funktion nicht auf eine variable des objekts zugreifen, also z.B. in der funktion
    Open();

    würd ich gerne statt

    Code:
    alert("blubb");
    variable2 ausgeben...(genauso definiert, wei this.id, nur eine zeile drunter)

    Code:
    alert(this.variable2);
    nur sagts dann "undefined".....

    //edit: mit this.id klappts, aber das wars auch, mit keiner anderen, hab ca. 5 variablen, jede (bis auf id) bringt undefined....obwohl se nru eine zeile drunter (unjter this.id) definiert werden....

    wie kann ich das lösen?

    Nochmals vielen Dank und Lg,
    Sebastian
    Geändert von Bueddl (25-01-2009 um 17:50 Uhr)

  5. #5
    dewey_89 ist offline Mitglied
    registriert
    27-12-2008
    Ort
    Sandl
    Beiträge
    42

    AW: probleme mit objekt und prototypenfunktion als event

    also mit meiner Methode funktionierts...

  6. #6
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.667

    AW: probleme mit objekt und prototypenfunktion als event

    ja, war mist, da hat noch die Clousure gefehlt.
    Code:
    function saveThis(obj)
    {
      return function()
      {
        obj.Open();
      };
    }
    document.getElementById(this.id).onclick = saveThis(this);

  7. #7
    Bueddl ist offline Grünschnabel
    registriert
    25-01-2009
    Beiträge
    8

    AW: probleme mit objekt und prototypenfunktion als event

    PHP-Code:
    function thumbPictureObject() {
            
    this.id 'myid';
        
    this.variable2 2;
        
    document.getElementById(this.id).onclick = function() {
            
    alert(this.variable2); //gibt undefined aus....
                     
    alert(this.id); //gibt myid aus
        
    }

    hab das auch mal ausprobiert, bei mri kommt dann das:
    undefined. was mach ich denn da falsch. bei beidne ansätzen das gleiche.... mit this.id gehts, sonst nit...

    ////////////////////

    erst jetzt deinen letzten post gelesen: jezz biste mri ne erklärung schuldig^^ auf einmal gehts..^^

    naja, however, danke =)
    Geändert von Bueddl (25-01-2009 um 17:58 Uhr)

  8. #8
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.667

    AW: probleme mit objekt und prototypenfunktion als event

    du weist einer variablen eine funktionsreferenz zu.
    Code:
    var test = new thumbPictureObject();
    var xxx=test.Open;var test = new thumbPictureObject();
    wenn du jetzt irgendwann deine funktionsreferenz aufrufst
    Code:
    xxx();
    ist dein this aber das window-objekt, weil du die funktion wie eine globale funktion aufrufst. du müßtest also dein objekt als context mitgeben.
    Code:
    xxx.call(test);
    aber woher soll das beim click-event jemand kennen? also wird bei events davon ausgegangen, daß die funktionsreferenz auf eine globale funktion zeigt. das heißt, du mußt in dieser globalen funktion deine eigentliche funktion rufen mit dem richtigen context.

Ähnliche Themen

  1. event Objekt zerstört meine Objekte :(
    Von cellardoor im Forum JavaScript
    Antworten: 8
    Letzter Beitrag: 27-08-2007, 17:01
  2. Event an darunterliegendes Objekt weitergebn
    Von meto im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 22-06-2007, 19:50
  3. Event Auslöser (Callee von Event Objekt)?
    Von sacharja im Forum JavaScript
    Antworten: 14
    Letzter Beitrag: 16-03-2007, 08:21
  4. Drag layer Probleme
    Von d.gierse im Forum JavaScript
    Antworten: 7
    Letzter Beitrag: 19-04-2006, 16:06
  5. Objekt an "unbekannter" Position erstellen
    Von RoyalKnight im Forum JavaScript
    Antworten: 14
    Letzter Beitrag: 23-12-2005, 00:51

Lesezeichen

Berechtigungen

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