繁体   English   中英

单击javascript选项卡更改

[英]javascript tab change on button click

我有此代码,并且在“ Tab”单击时可以正常工作,但无法从“按钮单击”更改“ Tab”。

    var tabs = document.getElementById('icetab-container').children;
    var tabcontents = document.getElementById('icetab-content').children;

    var myFunction = function () {
        var tabchange = this.mynum;
        for (var int = 0; int < tabcontents.length; int++) {
            tabcontents[int].className = ' tabcontent';
            tabs[int].className = ' icetab';
        }
        tabcontents[tabchange].classList.add('tab-active');
        this.classList.add('current-tab');
    }


    for (var index = 0; index < tabs.length; index++) {
        tabs[index].mynum = index;
        tabs[index].addEventListener('click', myFunction, false);
    }

我尝试了这段代码:

    function changeView() {
        tabs[1].click(); // and 
        tabs[1].addEventListener('click', myFunction, false);
    }

正确的做法是什么? 这是HTML代码:

        <div class="codepen-container">
            <div id="icetab-container">
                <div class="icetab current-tab">Add Group <i class="fa fa-users" aria-hidden="true"></i></div>
                <div class="icetab">Add User <i class="fa fa-user" aria-hidden="true"></i></div>
            </div>

                                <div class="col-md-offset-8 col-md-4 ">
                                    <button type="button" onclick="changeView()" Text="Save"class="btn btn-default" />
                                </div>

您现在正在执行的操作是在带有1个索引的选项卡上添加一个新的click事件侦听器,因此用户仍然需要单击它才能使其正常运行。

您只需要调用myFunction并将this.mynum设置为要选择的索引

function changeView() {
    myFunction.call({mynum: 1});
}

更具可读性的是:

function changeView(index) {
    myFunction.call({mynum: index});
}

您可以致电:

  • 第一个选项卡的changeView(0)
  • 第二个选项卡的changeView(1)
  • ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM