我试图使用onclick调用一个函数,但是这个函数已经在另一个通过onclick调用的函数中。
我实际上想要继续这样做大约6-7次。
代码可能有助于减少混淆:
HTML + JS:
{
<body>
<script type="text/javascript">
function abc()
{
document.getElementById("first").className='disc';
document.getElementById("first").onClick="def();";
}
function def()
{
document.getElementById("first").className='disco';
}
</script>
<input type="button" value="Change Color of this text" id="first" class="" onclick="abc();">
</body>
}
CSS:
.disc
{
color: red;
}
.disco
{
color: yellow;
}
我想在每次用户点击按钮时更改按钮中文本的颜色。那么问题是什么?当我再次点击它时,它只会变为红色,但不会变为黄色。
答案 0 :(得分:0)
我认为根据您的评论要求,这应该适合您: -
的Javascript
function abc(){
if(document.getElementById("first").className == "" || document.getElementById("first").className == "disco"){
document.getElementById("first").className = "disc";
}
else if(document.getElementById("first").className=="disc"){
document.getElementById("first").className="disco";
}
}
您无需更改HTML和HTML中的任何内容。的CSS。
答案 1 :(得分:0)
而不是将函数从abc()更改为def(),我不确定你可以做那样的事情。为什么你不使用1函数并检查当前的className,如下面的代码:
function abc()
{
if(document.getElementById("first").className == "disco" || document.getElementById("first").className == "") //change from red to yellow
document.getElementById("first").className="disc";
else //change from yellow to red
document.getElementById("first").className="disco";
}
答案 2 :(得分:0)
var first = document.getElementById("first"), counter = 0;
first.addEventListener('click', function () {
first.className = (counter % 2) ? 'disc' : 'disco';
counter +=1;
});
固定代码和更可靠的解决方案。