关闭easyui Tabs,有意思的JS异步处理

因业务须要,须要将关闭windows窗口内的全部Tabs关闭掉,所以写了个方法,执行结果把我惊了一下。javascript

        function closeAllTabs() {
            var tabsCount = $("#winTabs").tabs("tabs").length;//得到Tabs个数
            for (var i = 0; i < tabsCount; i++) {//遍历
                $("#winTabs").tabs("close", i);//0~n所有关闭
            }
        }

 长期写后端,程序这样写确定没问题,可是发现前端JS执行可不是按照后端的方式来执行的,其运行结果,只能关闭一半的Tabs标签;前端

通过调试后发现 $("#winTabs").tabs("close", i) 这个i是正常的加下去的,可是Tabs个数是因为被关闭掉就愈来愈少,所以执行到一半的时候后面的标签已经不存在了,可是仍是继续关下去。java

所以纠正代码,只须要将$("#winTabs").tabs("close", i) 这里的i更改成0便可,其原理是我永远只关第一个标签直接结束,解决问题。windows

1         function closeAllTabs() {
2             var tabsCount = $("#winTabs").tabs("tabs").length;//得到Tabs个数
3             for (var i = 0; i < tabsCount; i++) {//遍历
4                 $("#winTabs").tabs("close", 0);//注意这里更改成0了
5             }
6         }
相关文章
相关标签/搜索