Ich habe einen Knopf:
<button id="a" onclick="Foo()">Button A</button>
Wenn ich zum ersten Mal auf diese Schaltfläche klicke, soll Foo ausgeführt werden (was korrekt ausgeführt wird):
function Foo() {
document.getElementById("a").onclick = Bar();
}
Wenn ich zum ersten Mal auf die Schaltfläche klicke, möchte ich die Onclick-Funktion von Foo()auf ändern Bar(). Bisher konnte ich nur eine Endlosschleife oder gar keine Änderung erreichen. Bar()würde ungefähr so aussehen:
function Bar() {
document.getElementById("a").onclick = Foo();
}
Wenn Sie also auf diese Schaltfläche klicken, wird nur abgewechselt, welche Funktion aufgerufen wird. Wie kann ich das zum Laufen bringen? Was ist alternativ eine bessere Möglichkeit, den vollständigen Text eines Beitrags ein- oder auszublenden? Es beginnt ursprünglich kurz und ich biete eine Schaltfläche, um "den vollständigen Text zu sehen". Wenn ich jedoch auf diese Schaltfläche klicke, möchte ich, dass Benutzer erneut auf die Schaltfläche klicken können, damit die lange Version des Textes verschwindet.
Hier ist der vollständige Code, wenn es hilft:
function ShowError(id) {
document.getElementById(id).className = document.getElementById(id).className.replace(/\bheight_limited\b/, '');
document.getElementById(id+"Text").className = document.getElementById(id+"Text").className.replace(/\bheight_limited\b/, '');
document.getElementById(id+"Button").innerHTML = "HIDE FULL ERROR";
document.getElementById(id+"Button").onclick = HideError(id);
}
function HideError(id) {
document.getElementById(id).className += " height_limited";
document.getElementById(id+"Text").className += " height_limited";
document.getElementById(id+"Button").innerHTML = "SHOW FULL ERROR";
document.getElementById(id+"Button").onclick = "ShowError(id)";
}