Javascript回调不等待上一个命令的结束

时间:2016-06-01 10:05:45

标签: javascript html css

我有一系列Javascript命令,我需要执行sequntially。 该过程应如下

  1. 使用class =“##### Open”
  2. 查找所有Div
  3. 将所有这些的高度更改为0%
  4. 删除className“Open”,离开class =“#####”
  5. 将给定ID的div高度设置为100%并更改为class =“#### Open”
  6. 不幸的是,脚本在更改高度之前删除了类名,我很困惑为什么

        clearClass(id, resetClass);
    
    
        if (typeof clearClass != 'function') {
            function clearClass(id, callBack) {
    //Find all divs with class="#### Open"
                var divs = document.getElementsByClassName("Open");
                for (var i = 0; i < divs.length; i++) {
                    if (divs.item(i).id != id) {
                        divs.item(i).style.height = "0%";
    //make heights of these 0%
                    }
                }
                return callBack(id, toggleClass);
            }
        }
        if (typeof resetClass != 'function') {
            function resetClass(id, callBack) {
    //Find all divs with class="#### Open"
                var divs = document.getElementsByClassName("Open");
                for (var i = 0; i < divs.length; i++) {
                    if (divs.item(i).id != id) {
    //Remove "Open" class to leave class="####"
                        var DivClass2 = divs.item(i).className;
                        divs.item(i).className = DivClass2.replace("Open", "")
                    }
                }
                return callBack(id);
            }
        }
        if (typeof toggleClass != 'function') {
            function toggleClass(id) {
    //Change height of selected ID and give it class="#### Open"
                if (document.getElementById(id).style.height == "100%") {
                    document.getElementById(id).style.height = "0%";
                    var DivClass = document.getElementById(id).className;
                    setTimeout(function () {
                        document.getElementById(id).className = DivClass.replace("Open", "")
                    }, 1000);
                } else {
                    document.getElementById(id).style.height = "100%";
                    setTimeout(function () {
                        document.getElementById(id).className += " Open"
    
                    }, 1000);
    
                }
                return false;
            }
        }
    

    任何人都可以解释我出错的地方吗?

    添加了评论,但我认为无论如何都是相当简单的。 我是否可以恭敬地要求进一步的答复与我提出的问题有关,而不是我选择按照我的方式做事的原因。 BTW我不想使用Jquery,它需要用原生Javascript编写

0 个答案:

没有答案