jQuery MiniUI

 找回密码
 立即注册
查看: 6064|回复: 17
打印 上一主题 下一主题

关于tab的onactivechanged事件所遇到的问题 [复制链接]

Rank: 1

跳转到指定楼层
楼主
发表于 2015-11-4 14:51:41 |只看该作者 |倒序浏览


<div id="tabs1" class="mini-tabs" style="width:100%;height: 100%"  onbeforeactivechanged="onchangeTab" >
       <div name="first0"  title="送修原始记录" style="width:100%;height:100%;">
                       <div id="firstDiv0" style="overflow:scroll">

                        </div>
                  </div>
       <div name="first"  title="原始记录" style="width:100%;height:100%;">
          <div id="firstDiv" style="overflow:scroll">
            
           </div>
       </div>

</div>
在切换前我会进行判断,如果tabname 是first ,我会保存数据。切换完成后会加载相应tab的记录。问题来了:
如果点击保存的时候 ,当前页面在 送修原始记录,我需要首先将 tabname为 first的tab进行激活,进行判断,然后赋值一些操作,然后提交。在 激活的时候 就会调用onactivechanged这个事件,问题是这个事件还没有进去,接下来的判断、赋值操作就已经开始走了。。,等走完了,才在onactivechanged弹出东西来,这是为什么,你们的 onactivechanged 事件有时间延迟么:
最终弹出顺序为:11--22--33--come--,我想要的是:11--come--22--33
搜索
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

沙发
发表于 2015-11-4 15:36:31 |只看该作者
请提供页面重现你说的问题,截图的代码和html代码有什么联系?

Rank: 1

板凳
发表于 2015-11-4 16:28:23 |只看该作者
felt 发表于 2015-11-4 15:36
请提供页面重现你说的问题,截图的代码和html代码有什么联系?

<a id="savedata"   class="mini-button"  iconCls="icon-save"  plain="true" visible="true">提交</a>
               
<div id="tabs1" class="mini-tabs" style="width:100%;height: 100%" onbeforeactivechanged="onchangeTab">

       <div id="first0" name="first0" title="原始记录旧" style="width:100%;height:100%;"  >
              <div id="firstDiv0" style="overflow:scroll">
                          原始记录旧
              </div>        
       </div>
       <div id="first" name="first" title="原始记录最新" style="width:100%;height:100%;"  >
              <div id="firstDiv" style="overflow:scroll">
                         原始记录最新
              </div>        
       </div>

</div>

        <script type="text/javascript">
            mini.parse();
            var tabs = mini.get("tabs1");
            //onbeforeactivechanged
            function onchangeTab()
            {
            }
            //onactivechanged
            function openJDFile()
            {
              alert("come");
            }
            //激活tab
            function activeJDTab()
            {
                var nowtab = tabs.getActiveTab();
                        if(nowtab.name!="first")
                        {
                            var tab = tabs.getTab("first");
                            onchangeTab();
                            alert(11);
                        tabs.activeTab(tab);
                        alert(22);
                        }
            }
            //提交
            function saveData()
            {
                  activeJDTab();//激活原始记录 tab
                  alert("33");
            }      
               
    </script>搜索

Rank: 1

地板
发表于 2015-11-4 16:30:30 |只看该作者
wangyanjun001 发表于 2015-11-4 16:28
提交
               

点击提交按钮:弹出的顺序为 11---22---33---come,可是我希望的顺序是  11--come--22--33

Rank: 8Rank: 8

5#
发表于 2015-11-4 16:39:16 |只看该作者
wangyanjun001 发表于 2015-11-4 16:30
点击提交按钮:弹出的顺序为 11---22---33---come,可是我希望的顺序是  11--come--22--33 ...

请提供一个完整html页面来重现
回复高级模式可以上传文件
不要贴一段段的代码

Rank: 1

6#
发表于 2015-11-4 17:04:18 |只看该作者
felt 发表于 2015-11-4 16:39
请提供一个完整html页面来重现
回复高级模式可以上传文件
不要贴一段段的代码 ...
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2.         pageEncoding="UTF-8" session="false" %>
  3.        
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  5. <html>
  6. <!--
  7.   - Author(s): Administrator
  8.   - Date: 2015-11-04 16:17:01
  9.   - Description:
  10. -->
  11. <head>
  12. <title>test</title>
  13.     <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  14.     <script src="../miniui.js" type="text/javascript"></script>
  15.    
  16. </head>
  17. <body>
  18. <a id="savedata"   class="mini-button" onclick="saveData()"  iconCls="icon-save"  plain="true" visible="true">提交</a>
  19.                
  20. <div id="tabs1" class="mini-tabs" style="width:100%;height: 100%" onbeforeactivechanged="onchangeTab" onactivechanged="openJDFile">

  21.        <div id="first0" name="first0" title="原始记录旧" style="width:100%;height:100%;"  >
  22.               <div id="firstDiv0" style="overflow:scroll">
  23.                           原始记录旧
  24.               </div>       
  25.        </div>
  26.        <div id="first" name="first" title="原始记录最新" style="width:100%;height:100%;"  >
  27.               <div id="firstDiv" style="overflow:scroll">
  28.                          原始记录最新
  29.               </div>       
  30.        </div>

  31. </div>

  32.         <script type="text/javascript">
  33.             mini.parse();
  34.             var tabs = mini.get("tabs1");
  35.             //onbeforeactivechanged
  36.             function onchangeTab()
  37.             {
  38.             }
  39.             //onactivechanged
  40.             function openJDFile()
  41.             {
  42.               alert("come");
  43.             }
  44.             //激活tab
  45.             function activeJDTab()
  46.             {
  47.                 var nowtab = tabs.getActiveTab();
  48.                         if(nowtab.name!="first")
  49.                         {
  50.                             var tab = tabs.getTab("first");
  51.                             onchangeTab();
  52.                             alert(11);
  53.                         tabs.activeTab(tab);
  54.                         alert(22);
  55.                         }
  56.             }
  57.             //提交
  58.             function saveData()
  59.             {
  60.                   activeJDTab();//激活原始记录 tab
  61.                   alert("33");
  62.             }      
  63.               
  64.     </script>
  65. </body>
  66. </html>
复制代码

Rank: 8Rank: 8

7#
发表于 2015-11-4 17:08:37 |只看该作者
wangyanjun001 发表于 2015-11-4 17:04

js不会阻塞代码,
tabs.activeTab(tab);dom元素的渲染绘制有一定的时间开销

Rank: 1

8#
发表于 2015-11-4 17:23:36 |只看该作者
felt 发表于 2015-11-4 17:08
js不会阻塞代码,
tabs.activeTab(tab);dom元素的渲染绘制有一定的时间开销

那怎么解决

Rank: 1

9#
发表于 2015-11-5 09:20:47 |只看该作者
wangyanjun001 发表于 2015-11-4 17:23
那怎么解决

需要切换后执行的都写到onactivechanged里边

Rank: 8Rank: 8

10#
发表于 2015-11-5 09:31:52 |只看该作者
wangyanjun001 发表于 2015-11-4 17:23
那怎么解决

可以延时执行

Archiver|普加软件

GMT+8, 2024-9-17 04:34 , Processed in 1.026836 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部