jQuery MiniUI

标题: tabload事件无法触发 [打印本页]

作者: 王美琪    时间: 2021-8-2 10:36:08     标题: tabload事件无法触发

我想请问下,tab里面的tabload事件,怎么样才能触发呢?
页面上写的固定的tab页加载完没有触发
[attach]13317[/attach]
reloadTabs()也没有触发。
很奇怪的是我在官网上的例子中reloadTabs(tabs.getActiveTabs())是可以触发的,
但是在本地就是无论如何也触发不了,
有什么可能的原因吗?还是触发的方式不对呢?

作者: felt    时间: 2021-8-2 10:51:05

url加载的tab页才触发,你这里并没有url

你可以加在我们这个示例上测试http://www.miniui.com/demo/#src=tabs/load.html

作者: 王美琪    时间: 2021-8-2 11:23:55

felt 发表于 2021-8-2 10:51
url加载的tab页才触发,你这里并没有url

你可以加在我们这个示例上测试http://www.miniui.com/demo/#src=t ...

那么如果,每个tab页下面不是一个单独的页面,tab里面的内容就写在当前页面上,没有单独的url,此时想触发tabload事件该怎么办呢?
作者: felt    时间: 2021-8-2 11:25:17

王美琪 发表于 2021-8-2 11:23
那么如果,每个tab页下面不是一个单独的页面,tab里面的内容就写在当前页面上,没有单独的url,此时想触 ...

那就没有这tabload事件,load就是页面加载。
你现在要处理什么?
作者: 王美琪    时间: 2021-8-2 11:28:33

王美琪 发表于 2021-8-2 11:23
那么如果,每个tab页下面不是一个单独的页面,tab里面的内容就写在当前页面上,没有单独的url,此时想触 ...

实际上我想解决的问题是,我给tab绑定了activechanged事件,事件处理函数里边调用了获取title的方法。
但是,当我setTabs()的时候,会自动触发valuechanged事件,事件处理函数想取title的时候发现tab还没加载完成,取title就会出错。
所以我想到这样一个办法,在activechanged里面绑定tabload事件,等tab加载完成再去取title。但是遇到了新的问题,没办法触发tabload事件了。
作者: felt    时间: 2021-8-2 12:03:48

本帖最后由 felt 于 2021-8-2 12:05 编辑
王美琪 发表于 2021-8-2 11:28
实际上我想解决的问题是,我给tab绑定了activechanged事件,事件处理函数里边调用了获取title的方法。
但 ...

activechanged里面加个容错处理啊,比如 如果有title,才进行下去,没title就不处理
作者: 王美琪    时间: 2021-8-2 12:38:40

王美琪 发表于 2021-8-2 11:28
实际上我想解决的问题是,我给tab绑定了activechanged事件,事件处理函数里边调用了获取title的方法。
但 ...

那我有什么思路解决valuechanged事件取值和setTabs()冲突的问题吗?有办法能控制它的先后顺序么?
作者: felt    时间: 2021-8-2 13:05:35

本帖最后由 felt 于 2021-8-2 13:23 编辑
王美琪 发表于 2021-8-2 12:38
那我有什么思路解决valuechanged事件取值和setTabs()冲突的问题吗?有办法能控制它的先后顺序么? ...

什么valuechanged事件做个简单的例子上传上来,我看看

作者: 王美琪    时间: 2021-8-2 14:02:45

felt 发表于 2021-8-2 13:05
什么valuechanged事件做个简单的例子上传上来,我看看
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>demo</title>
  6. </head>
  7. <script src="jslib/jquery/jquery-1.8.3-min.js"></script>
  8. <script  src="jslib/miniui/boot.js"></script>
  9. <body>
  10.     <div id="mytabs" class="mini-tabs">
  11.         <div title="wa"></div>
  12.         <div title="ng"></div>
  13.     </div>
  14.     <div id="btn" class="mini-button">重新产生tab</div>
  15. </body>
  16. <script>
  17.     mini.parse();

  18.     var $tabs = mini.get("mytabs");
  19.     var $btn = mini.get("btn");

  20.     $tabs.on('activechanged',function () {
  21.         //点击按钮后此处会报错
  22.         console.info("当前title"+$tabs.getActiveTab().title);
  23.     });
  24.     $btn.on('click',conTab);

  25.     function conTab(){
  26.         var titles = [];
  27.         for (var i = 0; i < 5; i++) {
  28.             titles.push({"title":"tab"+i});
  29.         }
  30.         $tabs.setTabs(titles);
  31.     }
  32. </script>
  33. </html>
复制代码

作者: felt    时间: 2021-8-2 14:12:23

王美琪 发表于 2021-8-2 14:02
  1. $tabs.on('activechanged', function () {
  2.         //点击按钮后此处会报错
  3.         var activeTab = $tabs.getActiveTab();
  4.         if (activeTab) {
  5.             console.info("当前title" + $tabs.getActiveTab().title);
  6.         }
  7.     });
复制代码
加个容错就好了
作者: 王美琪    时间: 2021-8-2 14:28:56

felt 发表于 2021-8-2 14:12
加个容错就好了

嗯嗯,问题解决啦,谢谢




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2