起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

123
返回列表 发新帖
楼主: reoyha

[结贴] 自定义tabs

  [复制链接]

64

主题

471

帖子

1127

积分

金牌会员

Rank: 6Rank: 6

积分
1127
发表于 2016-11-25 14:29:51 | 显示全部楼层
晕死,在system/components/bootstrap/tabs/demo/simple.w里面就有动态创建tabs的例子,用的也是bootstrap的tab,只是做了下改动,使用tab的content属性来查找content的xid来选择显示哪个content。
注意,由于写例子的人不负责,该例子无法正常执行,但是js代码里有个函数叫“createTabs”,参考它就可以了。
回复 支持 反对

使用道具 举报

90

主题

333

帖子

896

积分

高级会员

Rank: 4

积分
896
QQ
 楼主| 发表于 2016-11-25 14:38:28 | 显示全部楼层
qldsrx 发表于 2016-11-25 14:29
晕死,在system/components/bootstrap/tabs/demo/simple.w里面就有动态创建tabs的例子,用的也是bootstrap ...

那个我试过了,jishuang也在11层回复,那个例子不能用。
回复 支持 反对

使用道具 举报

90

主题

333

帖子

896

积分

高级会员

Rank: 4

积分
896
QQ
 楼主| 发表于 2016-11-25 14:53:20 | 显示全部楼层
本帖最后由 reoyha 于 2016-11-25 14:55 编辑
qldsrx 发表于 2016-11-25 14:16
想要自定义tabs,建议用bootstrap的或其它第三方的,我花了点时间给你写了一个利用bootstrap的动态扩展函数 ...

可以用,做了一些修改,不知道对不对。
  1. Model.prototype.insertTab = function(parentDOM, titleHtml, contentHtml, index) {
  2.                 if (!parentDOM)
  3.                         return null;
  4.                 var $tablist = $('ul[role=tablist]', parentDOM);
  5.                 var $tabcontent = $('div.tab-content', parentDOM);
  6.                 var num = $tablist.children().length;
  7.                 if (num && index && index > -1 && index < num) {
  8.                         $('<li role="presentation"><a href="#tab' + num + ' content="tabContent' + num + '" role="tab" data-toggle="tab">' + titleHtml + '</a></li>').insertBefore($tablist.children()[index]);
  9.                         $('<div role="tabpanel" class="tab-pane" id="tab' + num + '" xid="tabContent' + num + '">' + contentHtml + '</div>').insertBefore($tablist.children()[index]);
  10.                 } else {
  11.                         $('<li role="presentation"><a href="#tab' + num + '" role="tab" data-toggle="tab" content="tabContent' + num + '">' + titleHtml + '</a></li>').appendTo($tablist);
  12.                         $('<div role="tabpanel" class="tab-pane" id="tab' + num + '" xid="tabContent' + num + '">' + contentHtml + '</div>').appendTo($tabcontent);
  13.                 }
  14.                 if (!num) {
  15.                         $tablist.find('a[role=tab]').tab('show');
  16.                 }
  17.         }
复制代码
感觉平台是通过<a>标签的content属性,去查找对应xid的界面展示?那么原生的href属性的锚点,好像并不是特别好用,在平台内部。


回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2016-11-25 15:29:53 | 显示全部楼层
平台是通过content关联去确定显示那个content的
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

90

主题

333

帖子

896

积分

高级会员

Rank: 4

积分
896
QQ
 楼主| 发表于 2016-11-25 15:41:37 | 显示全部楼层
感谢大家的帮助,动态生成页签已经没问题了,但是考虑后边还要加windowContainer组件,所以采用了预置足够多的分类的方式。
初学jquery所以有些事件的写法并不熟悉。
还有当页签太多时会换行,有个插件支持bootstrap的原生tabs,但是不支持平台的改变。希望能作为可选插件进行补充发布。
插件见附件:

tabdrop.zip (2.61 KB, 下载次数: 138)
回复 支持 反对

使用道具 举报

90

主题

333

帖子

896

积分

高级会员

Rank: 4

积分
896
QQ
 楼主| 发表于 2016-11-25 16:39:01 | 显示全部楼层
jishuang 发表于 2016-11-25 15:29
平台是通过content关联去确定显示那个content的

还是有问题,如果使用$UI/system/components/bootstrap/tabs/tabs,下边windowContainer加载wing布局界面就全部覆盖了。
如果使用$UI/system/components/justep/tabs/tabs,下边windowContainer加载wing布局没有问题,但是初始载入,因为太长换行的tab无法点击。

两个组件都不完善啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-6-23 15:47 , Processed in 0.060521 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表