我有一个按钮:
<button id="a" onclick="Foo()">Button A</button>
当我第一次点击此按钮时,我希望它执行Foo(这它可以正确地执行):
function Foo() {
document.getElementById("a").onclick = Bar();
}
我希望当我第一次点击按钮时,能够将onclick函数从Foo()
更改为Bar()
。到目前为止,我只能实现无限循环或根本没有变化。Bar()
的代码可能如下:
function Bar() {
document.getElementById("a").onclick = Foo();
}
因此,点击此按钮只是交替调用哪个函数。我该如何使其正常工作?或者,有什么更好的方法可以显示/隐藏帖子的完整文本?它最初是缩短的,并提供一个按钮来“查看完整文本”。但当我点击该按钮时,我希望用户能够再次点击该按钮,使文本的长版本消失。如果有帮助的话,这是完整的代码:
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)";
}
onclick
属性应该全部小写。https://developer.mozilla.org/zh-CN/docs/Web/API/GlobalEventHandlers/onclick - Matt Ballmyobject.onclick += function() { Foo(); }
- Mikael Östberg