jquery append problem

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

TheGateway

Mitglied
ich weis gar nicht wo das thema so richtig hinpasst ... ich hab folgendes Problem:

Code:
 $("#UserList").append("<li userID='" + data.id + "' onclick='openPrivateChatRoom('" + data.id + "');'>" + user.username + "</li>");

und das ergibt

Code:
<li userid="_Imuk63OMLBHKC-AAAAV" onclick="openPrivateChatRoom(" _imuk63omlbhkc-aaaav');'="">testUser</li>

mir geht es speziell um die onclick function,

- er baut da einfach ein ="" dazu ohne jeglich für mich ersichtlichen Grund,
- auch macht er das ' im Code nicht zum ".
- die userID schreibt er einmal klein einmal groß ...,

-im Code steht userID und er macht userid draus....
- die userid hat einmal ein kleins i und ein Großes ? es ist doch die gleiche variable, wieso verändert er die?
- er verändert also willkürlich groß und kleinschreibung ...

was stimmt mit dem nich? :mad:

das so kleinigkeiten stunden kosten können, ist mir bewusst, aber hier bin ich völlig ratlos!

whats wrong?
 
Zuletzt bearbeitet:
Um diese ganzen Komplikationen zu umgehen, empfehle ich, den Eventlistener nicht inline zu notieren sondern mit jQuery on hinzuzufügen. Die User-ID hast Du ja schon als Attribut, besser ist es jedoch, sie als data-Attribut zu definieren.
 
klar gibt es viele Wege nach ROM, so auch hier, aber mich würde wirklich interessieren, wieso append so einen Zirkus veranstaltet und das völlig sinnfrei
 
Versuche mal, dir den String innerhalb der Klammern von append für sich allein mit console.log() auszugeben. Wenn Du dir das ansiehst, wird es etwas klarer.
 
wenn ich console log mache kommt genau das was ich haben möchte

Code:
     string = "<li userID='" + data.id + "' onclick='openPrivateChatRoom('" + data.id + "');'>" + user.username + "</li>";                     
     $("#UserList").append(string);
     console.log(string);

Code:
<li userID='cZolC-BEHh3cXcpJAAAD' onclick='openPrivateChatRoom('cZolC-BEHh3cXcpJAAAD');'>TestUser</li>
 
Achte genau auf dieses:
onclick='openPrivateChatRoom('cZolC-BEHh3cXcpJAAAD');'
So geht es mit den Hochkommas nicht, da muss man entweder verschiedene nehmen oder escapen.
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…
Zurück