-
Notifications
You must be signed in to change notification settings - Fork 194
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tab控件标准重新修订 #11
Comments
修订:
|
属性命名建议allowClose -> closable 方法参数命名{Object} config,这个改成{Object} tab吧 对HTML声明的导航条处理策略
我觉得更合理的是: 关于“问题”的问题
现在那个activeAt我觉得可以不要。至于这两个方法,可以有可以没有。
有这需求么??看大家咯
我觉得不能删除面板。可以隐藏 |
对HTML声明的导航条处理策略最初的版本是用户有声明导航条元素,直接用那个元素,不删了重建的,可是碰到些问题。 因为默认的导航条是 所以为了偷懒,又不想限制用户一定要用 其它
说白了 |
导航条处理策略删了重建的问题是,用户可能在上面自定义了自己的class做特殊样式,或其他什么东西,就没了。 activeAt我们的ui体系,统一性在于,设置相关的都是 |
导航条处理策略那能不能这样,我们要求用户必须使用 那样又引出另一个问题,如果导航条元素已经存在,要移动一下放到 activeAtOK,删。 |
导航条处理策略不如kiss点,用data-role="navigator"下的第一个element的tagName? 还有,如果已经存在,就不应该移动它了吧。举个例子,ie的contentEditable,插入一个a,会自动把href换成绝对路径。这就是做得越多错的越多的典型…… |
好吧又变回第一版了……不过需要声明的是,即便我能处理元素类型的问题,在导航条的子元素上有其它的属性或者class,也是会被刷掉的,肯定会用 |
没变回第一版啊,第一版是不支持data-role="navigator"的。 |
那个第一版是我本地的一套实现,从来没commit上来过,你们没看到过哈,那个版本里有
等讨论时间截止,没啥变化的话我会使用现在讨论的方案 |
喔喔,看来做方案和泡妞一样,通常第一反应看上的是最好的 |
我仔细思考了一下,认为我们应该对控件的HTML结构有更强的控制,理由如下:
我建议控件强制要求用户使用固定的结构,比如 我相信用户都写HTML了,写个 另外,保留 |
在 b9e04ad 中,支持 推荐的结构如下:
原则上 不建议 自己提供导航条元素,因为 |
关,后续单独发标准文档Review |
以下是新的Tab控件UI标准,供大家讨论
功能描述
Tab
控件可以用于标签页的切换。每个标签可以对应一个容器元素,Tab
控件自动控制容器的切换。Tab
标签自身会创建一个导航条,包含各个标签的元素。继承层级
Tab
->Control
prototype.type
"Tab"
配置项及属性
以下属性可在构造函数中传入,也可在运行过程中通过
set
或setProperties
修改。{Array} tabs
:指定标签页的配置。{boolean} allowClose
:如果此项为 true ,则每个标签上会出现一个关闭元素,点击该元素会自动删除该标签。默认值为 false 。{number} activeIndex
:指定当前激活的标签的下标。默认值为 0 。其中
tabs
中的每一项包含以下内容:{string} title
:标签的标题,必须有。{string=} panel
:标签对应的面板元素的id,可选。其中
activeIndex
的变化如下:activeIndex
始终指向当前激活的标签的下标。activeIndex
的值为 -1 。tabs
导致activeIndex
超出标签的数量,则其值将会被修正为 0 。控件主元素
Tab
控件的控件主元素必须是<div>
元素,如果构造控件时没给定主元素,则创建一个空的<div>
元素作为主元素。HTML声明的导航条
Tab
控件的主元素中可以包含一个导航条元素,该导航条元素结构必须如下所示:导航条元素满足以下条件:
<ul>
或<ol>
等可包含<li>
元素的容器。data-role="navigator"
属性。<li>
元素。当
Tab
控件发现导航条后,会采取以下行为:<li>
元素抽取标签选项,以data-for
为panel
属性,以innerText
为title
属性。tabs
选项 。Tab
控件会自己建立符合需求的导航条。HTML声明子元素
当符合以下 全部 条件时:
tabs
选项,或该选项为一个空数组。则
Tab
控件自动将每一个子元素作为一个标签配置项,元素的title
属性作为配置项的title
属性,元素的id
属性作为配置项的panel
属性。公共方法
{void} add({Object} config)
在最后面添加一个标签,其中
config
包含title
和可选的panel
选项。{void} insert({Object} config, {number} index)
在指定位置添加一个标签,其中
config
包含title
和可选的panel
选项。{void} remove({Object} config)
移除指定的标签,其中
config
必须是控件tabs
属性中已有的对象,通过引用判断相等。{void} removeAt({number} index)
移除指定位置的标签。
{void} activate({Object} config)
激活指定的标签,其中
config
必须是控件tabs
属性中已有的对象,通过引用判断相等。{void} activateAt({number} index)
激活指定位置的标签。
事件
add
当添加或插入一个标签时触发,事件对象包含:
tab
:添加的标签的配置项。remove
通过方法或点击关闭标签的元素从而移除一个标签时触发,事件对象包含:
tab
:移除的标签的配置项。activate
因任何情况导致一个标签被激活时触发,事件对象包含:
activeIndex
:当前激活的标签的下标tab
:当前激活的标签配置项注意,当因为插入或移除标签导致
activeIndex
变化,但当前激活的标签并没有改变时, 不会 触发该事件。问题
setActiveIndex
、getActiveIndex
等方法,现在可以使用set('activeIndex')
来操作add
事件,从而实现可变的标签页功能The text was updated successfully, but these errors were encountered: