code> '); }} $ (Dokument) .ready (Funktion () { $ ('. openembed'). click (function () { Code generieren(); var answerid = $ ('. openembed'). attr ('id'); $ ('# box'). show (); falsch zurückgeben; }); $ ('# embedded'). click (Funktion (e) { e.stopPropagation () }); $ (Dokument) .click (Funktion () { $ ('# box'). hide () }); }); Mein Aufschlag ist: Einbetten Einbetten
2021-01-04 08:13:41
Ihr Problem ist hier: $ ('. openembed') Gibt ein Array übereinstimmender Elemente zurück. Sie sollten stattdessen nur das angeklickte Element auswählen. $ ('. openembed') funktioniert ordnungsgemäß, wenn Sie allen Elementen mit dieser Klasse ein Klickereignis zuweisen. Andererseits können Sie nicht wissen, auf was geklickt wird. Aber zum Glück können Sie im Hauptteil der Handlerfunktion $ (this) aufrufen. $ (this) gibt das aktuelle (und angeklickte) Element zurück. // var answerid = $ ('. openembed'). attr ('id'); // Falsch var answerid = $ (this) .attr ('id'); // Richtig // Jetzt können Sie generateCode aufrufen generateCode (answerid); Ein weiterer Fehler ist der Hauptteil der Funktion generateCode. Hier sollten Sie die ID des ausgewählten Elements übergeben. Dies ist die richtige Implementierung. Funktion generateCode (answerid) { if ($ ('# Eingabe einbetten [Name = "Kommentare"]: aktiviert'). Länge> 0 == wahr) { var comment = "& comment = 1"; } else { var comment = ""; }} $ ("# embeddedcode"). html ('