Eventhandler und Variablen nicht aufrufbar

therealmoses

Grünschnabel
Code:
        function resetUserList(){   
            
                var object = document.getElementById('userlist');
                object.i = 0;
                object.innerHTML = '';
            
        }



Code:
        function appendUser(firstname, lastname, email, id){   
            
                var object = document.getElementById('userlist');
                item = "<a class='listview__item' href=''><div class='listview__content'><div class='listview__heading'>"+firstname + " " + lastname+"</div><p>"+email+"</p></div></a>";
                object.innerHTML += item;
                var object                = document.getElementById('userlist');
                temp_object             = object.getElementsByTagName('a')[object.i];
                temp_object.firstname     = firstname;
                temp_object.lastname    = lastname;
                temp_object.email         = email;
                temp_object.href         = id;
                
                temp_object.onclick = function(){
                    
                    to_id = 0;
                    getChatByID(this.getAttribute('href'), to_id);
                    console.log(this.firstname);
                    
                    
                return false;}
                
                object.i++;
        }


Warum geht das nicht, der EventHandler zündet nicht,....
 

Anhänge

  • Bildschirmfoto 2019-02-03 um 21.58.37.png
    Bildschirmfoto 2019-02-03 um 21.58.37.png
    60 KB · Aufrufe: 8
  • Bildschirmfoto 2019-02-03 um 22.03.28.png
    Bildschirmfoto 2019-02-03 um 22.03.28.png
    19,3 KB · Aufrufe: 8
Zuletzt bearbeitet:
Poste Code besser in Textform und in Codetags statt mit einem Bild. Dann muss man es nicht abtippen, wenn man es testen will. (Codetags: Die drei Punkte in der Werkzeugleiste zwischen dem Smilie und der Kamera)
 
Code:
      function appendUser(firstname, lastname, email, id){  
                           
                var object                 = document.getElementById('userlist');
                var a                     = document.createElement("a");
                a.classList.add('listview__item');
                var div                 = document.createElement("div");
                div.classList.add('listview__content');
                var innerdiv             = document.createElement("div");
                innerdiv.innerHTML         = firstname + " " + lastname;
                innerdiv.classList.add('listview__heading');
                innerp                     = document.createElement("p");
                innerp.innerHTML         = email
                div.appendChild(innerdiv);
                div.appendChild(innerp);
               
                a.appendChild(div);
                a.firstname     = firstname;
                a.lastname        = lastname;
                a.email         = email;
                a.href             = id;
               
                a.onclick = function(){
                   
                    to_id = 0;
                    getChatByID(this.getAttribute('href'), to_id);
                    console.log(this.firstname);
                   
                   
                return false;}
               
                object.appendChild(a);
        }


So funktioniert, kann man den Code evtl. (diesen hier) noch verkürzen?
 
Zuletzt bearbeitet:
Wenn ich den Code in eine Testdatei aufnehme, ohne das getChatByID(), feuert der Handler einwandfrei. Ich vermute stark, dass diese Funktion einen Fehler verursacht, so dass das Skript abbricht. Wirf einen Blick in die Console, dort müsste dies angezeigt werden.
 
Vielen Dank für deine Hilfe und dein Interesse.

Nope schaue immer in die Console, aber ich werde testen.

Kann man die Lösung noch verkürzen?
 
Dann ist Debuggen angesagt. Als erstes vor den Aufruf von getChatByID() eine Kontrollausgabe einfügen. Oder mit dem Debugger schrittweise untersuchen.
 
Zurück