tengo un botón:Cambio onclick acción con una función Javascript
<button id="a" onclick="Foo()">Button A</button>
Al hacer clic en este botón la primera vez, quiero que se ejecute Foo (que lo hace correctamente):
function Foo() {
document.getElementById("a").onclick = Bar();
}
Lo que quiero que suceda cuando haga clic en el botón la primera vez es cambiar la función onclick de Foo()
a Bar()
. Hasta ahora, solo he podido lograr un ciclo infinito o ningún cambio en absoluto. Bar()
sería algo como esto:
function Bar() {
document.getElementById("a").onclick = Foo();
}
Por lo tanto, al hacer clic en este botón es sólo alterna cuya función es llamada. ¿Cómo puedo hacer que esto funcione? Alternativamente, ¿cuál es una mejor manera de mostrar/ocultar el texto completo de una publicación? Originalmente se inicia un cortocircuito, y proporciono un botón para "ver el texto completo". Pero cuando hago clic en ese botón, quiero que los usuarios puedan hacer clic nuevamente en el botón para que desaparezca la versión larga del texto.
Aquí está el código completo, si ayuda:
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)";
}
No estoy haciendo esto una respuesta ya que usted está preguntando específicamente sobre JavaScript vano, pero es posible que desee buscar en jQuery. Es una biblioteca de JavaScript que puede ayudarte a hacer lo que estás buscando hacer en tu pregunta. – JasCav
Conozca JQuery, solo puede usar Javascript en este caso. Gracias. – sepiroth
La propiedad 'onclick' debe estar en minúsculas. https://developer.mozilla.org/en/DOM/element.onclick –