如何使用函数更改活动选项卡。

时间:2017-03-05 06:34:41

标签: javascript jquery

我在尝试使用if else statement更改标签。当变量尝试超过限制时,应更改活动选项卡。我的代码很少。

<ul class="tab1">
<li><a href="javascript:void(0)" type="button" class="tablinks" onclick="changeTab(event, 'home'), home()" id="defaultOpen">English Language <img src="assets/images/infoico.png" width="20" height="20"></a></li>
<li><a href="javascript:void(0)" type="button" class="tablinks" onclick="changeTab(event, 'tab1'), tab1()">Quantitative Aptitude <img src="assets/images/infoico.png" width="20" height="20"></a></li>
<li><a href="javascript:void(0)" type="button" class="tablinks" onclick="changeTab(event, 'tab2'), tab2()">Logical Reasoning <img src="assets/images/infoico.png" width="20" height="20"></a></li>
</ul>
<input type="button" name="catab" value="CheckTab" onclick="return checktabs()"/>

JavaScript函数,我正在使用它。

<script>
        function changeTab(evt, cityName) {
            var i, tabcontent, tablinks;
            tabcontent = document.getElementsByClassName("tabcontent");
            for (i = 0; i < tabcontent.length; i++) {
                tabcontent[i].style.display = "none";
            }
            tablinks = document.getElementsByClassName("tablinks");
            for (i = 0; i < tablinks.length; i++) {
                tablinks[i].className = tablinks[i].className.replace(" active", "");
            }
            document.getElementById(cityName).style.display = "block";
            evt.currentTarget.className += " active";
        }

        // Get the element with id="defaultOpen" and click on it
        document.getElementById("defaultOpen").click();
    </script>

我正在尝试下面的代码来使用这个标签,但没有取得成功。

<script>
    function checktabs(){
       var j = 0;
        if(j == 3){
          changeTab(event, 'tab1');
        }
        j++;
    }
</script>

<script>
     function home(e){
        e.preventDefault();
      }
      function tab1(e){
        e.preventDefault();
      }
      function tab2(e){
        e.preventDefault();
      }
</script>

1 个答案:

答案 0 :(得分:0)

如果您将代码复制粘贴到Stack Overflow中,我发现您遇到了一些问题。您的代码如上:

<script>
    function checktabs(){
       var j = 0;
        if(j == 3){
          changeTab(event, 'tab1');
        }
        j++;
    }
</script>
      function home(e){
        e.preventDefault();
      }
      function tab1(e){
        e.preventDefault();
      }
      function tab2(e){
        e.preventDefault();
      }
<script>

</script>

...应该没有关闭脚本,函数,开放脚本,关闭脚本结构,应该是这样的:

<script>
    function checktabs(){
        var j = 0;
        if(j == 3){
            changeTab(event, 'tab1');
        }
        j++;
    }
    function home(e){
        e.preventDefault();
    }
    function tab1(e){
        e.preventDefault();
    }
    function tab2(e){
        e.preventDefault();
    }
</script>

其次,您使用的j变量已定义为“var j = 0;”在函数checktabs()中。当函数返回时,j将不存在,下次它将返回0.在函数外定义它将有所帮助,如下所示:

var j = 0;
function checktabs(){
    if(j == 3){
        changeTab(event, 'tab1');
    }
    j++;
}

这应该可以解决你的问题。