在一个函数中来回更改id

时间:2016-08-06 14:52:14

标签: javascript css3

这是翻转硬币页面的一部分 我根据当前状态和硬币的未来状态在css上制作硬币的动画 因此,每次运行该功能时,我必须将硬币重置为默认状态,然后使用新的css动画将其设置为未来状态 事情是..当我运行代码它没有工作,直到我添加警报(“嗨”)线..我不知道为什么,我想解决这个,因为我不希望用户点击确定每当他需要翻转硬币时

var flipCoin = function () {
flips ++;
var result = 1;
if (document.getElementById("fromHeadsToHeads") !== null) {
document.getElementById("fromHeadsToHeads").id = "defaultHeads";
}

switch (result) {
    case 1 :

        if (document.getElementById("defaultHeads") !== null) {
            alert("hi")
            document.getElementById("numFlips").innerHTML = flips;
            document.getElementById("defaultHeads").id = "fromHeadsToHeads";
        }
    break;
}

1 个答案:

答案 0 :(得分:0)

问题可能是浏览器在你设置我和你调用getElementById之间还没有重新呈现DOM。

当您提醒某些内容时,浏览器可能会触发渲染。

有可能有更好的方法来解决你想要做的事情,但是为了解决DOM没有被重新渲染的直接问题,你可以将警报后面的所有内容放在一个由a调用的新匿名函数中。 setTimeout的。有点像:

SetTimeout(function(){...},100)。您必须正确获取变量范围,但这应该为DOM提供更新的机会。