Wie gebe ich Dictionary einer Funktion in Javascript mit?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet
$("#buttons").append(`<button href="#"onclick="geklickt(${dict})">drücken</a></button>`);

Auf dieser Zeile fügst du dict in einen String ein. Das ganze dict-Objekt wird dann also in einen String umgewandelt und dann dort eingefügt. Ich weiss jetzt auch nicht genau, was da dein Ziel ist...

Auf welcher Zeile tritt der Fehler überhaupt auf? Das steht in der Fehlermeldung.

Woher ich das weiß:Berufserfahrung – Informatiker Applikationsentwicklung
billythekidd0 
Fragesteller
 22.09.2021, 14:24

Der Fehler tritt beim dem ${Dict} auf, naja also ich will das dictionary Dict der onclick Funktion übergeben. Wenn ich z.b. '$'Dict}' übergebe, dann geht es durch und mit wird (object) Object ausgegeben. Aber ich will ja das dictionary ausgeben.

0
Lezurex  22.09.2021, 14:31
@billythekidd0

Also ich würde den onclick Listener direkt mit nativen Javascript Funktionen dem Button hinzufügen. Wie das genau mit jQuery geht, weiss ich nicht, das Framework ist schon wirklich alt geworden...

Ein neues Element wird erstellt und in die Variable gespeichert. Dort kannst du dann zum Beispiel einen Event Listener anfügen (weiss nicht mehr genau, wie das mit jQuery geht):

let button = $("<button>Hier drücken</button>");

button.on("click", () => { /*hier callback und dein dict benutzen*/ });

// Dann den erstellten Button appenden:
$("#buttons").append(button);

Aber auf keinen Fall würde ich das so machen, wie du das jetzt machst. Das durch einen String durchzureichen ist zu viel gebastel.

0
billythekidd0 
Fragesteller
 22.09.2021, 15:06
@Lezurex
$("#buttons").append(`<li class="Seite-item"><a class="Seiten-aufruf" href="#"onclick="getklickt(${dict})">${Zähler}</a></li>`);

wenn das jetzt der button in meinem Projekt ist, wie genau mach ich das in nativem javascript mit den klassen und dem </a> ?

Bei meinem Testbeispiel hats funktioniert wie dus beschrieben hast.

0
Lezurex  22.09.2021, 15:10
@billythekidd0
let button = $(`<li class="Seite-item"><a class="Seiten-aufruf" href="#">${Zähler}</a></li>`);

button.on("click", () => { getklickt(dict) });

// Dann den erstellten Button appenden:
$("#buttons").append(button);

So. Einfach den onclick noch aus dem HTML rausnehmen.

0