本帖最后由 helpmbbm 于 2012-06-11 13:56:01 编辑

解决方案 »

  1.   

    实际上两个tab都有问题,selectTag()函数没有问题,scrollTag()函数的问题主要是计数器的处理有问题,按你的写法,两个tab公用了计数器变量x,就造成了两个tab的混乱。function selectTag(showContent, selfObj, id) {
        var obig = document.getElementById("big_" + id);
        var tag = document.getElementById("tags_" + id).getElementsByTagName("li");
        var taglength = tag.length;
        for (i = 0; i < taglength; i++) {
            tag[i].className = "";
        }
        selfObj.parentNode.className = "selectTag";
        for (i = 0; j = document.getElementById("tagContent" + i + "_" + id); i++) {
            j.style.display = "none";
        }
        document.getElementById(showContent).style.display = "block";
    }var counter = {"x": 0, "y": 0}; //修改了计数器变量,定义为一个对象,初始值为0function scrollTag(id, counterName) { //重写了scrollTag()函数,增加了一个表示计数器名称的变量(counterName)
    var oLinks = document.getElementById('tags_' + id).getElementsByTagName('a');
    var oLists = document.getElementById('tags_' + id).getElementsByTagName('li');

    counter[counterName] = (counter[counterName] + 1) % oLinks.length;
    var idx = counter[counterName];

    for (var i = 0; i < oLinks.length; i ++) {
    oLists[i].className = '';
    document.getElementById('tagContent' + i + '_' + id).style.display = 'none';
    }
    oLinks[idx].parentNode.className = 'selectTag';
    document.getElementById('tagContent' + idx + '_' + id).style.display = 'block';
    }var S = 1.5;
    var s = 2.2
    var scrolll = setInterval('scrollTag("a", "x")', 1000 * S); //相应地,调用方式要改变一下
    var scrollll = setInterval("scrollTag('b', 'y')", 1000 * s); //同上function zhuan(c) {
        if (c == "a") {
            clearInterval(scrolll);
        }
        else {
            clearInterval(scrollll);
        }
    }function jixu(c) {
        if (c == "a") {
            scrolll = setInterval('scrollTag("a")', 1000 * S);
        }
        else {
            scrollll = setInterval('scrollTag("b")', 1000 * s);
        }
    }
      

  2.   

    后面那个jixu()函数也需要改一下对scrollTag()的调用方式:
    function jixu(c) {
    if (c == "a") scrolll = setInterval('scrollTag("a", "x")', 1000 * S);
    scrollll = setInterval('scrollTag("b", "y")', 1000 * s);
    }