Skip to content

kitABAB/Object-oriented-tabs-bar-switching

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

抽出对象

n定义一个tab的类,为该类添加切换/添加/删除/修改方法

n实例化对象,获取到需要操作的元素(整个个容器,tab标题栏,tab内容)

n添加初始化方法,为tab标题绑定点击事件获取到对应的下标

功能实现

// 1.点击tab栏,可以切换效果

// 2.点击+号,可以添加tab项和内容项

// 3.点击X号,可以删除当前tab项和内容项

// 4.双击tab项文字或内容项文字,可以修改里面文字内容

切换

u为tab标题绑定的事件触发切换功能的方法

u在切换的方法中将点击的tab标题添加激活的类样式,为当前点击的tab标题对应的content元素添加激活的类样式

u注意this指向的修改

添加

u为添加按钮绑定点击事件

u创建新的tab标题 和 新的 tab 内容,并将把创建的两个元素利用 insertAdjacentHTML()追加到对应的父元素中

u注意清除之前所有兄弟元素的激活类样式

bug

n因为添加过后的tab标题和内容未及时更新,会出现多个激活的bug

n单独定义一个更新的方法在初始化的时候调用

n在点击添加的时候再次调用初始化的方法

删除

n获取所有tab标题的x按钮并为每一个tab标题的x号绑定点击事件(一定记得是在更新的方法中获取,否则新添加的tab栏获取不到,代码会报错)

n在tab类的删除方法中处理: 点击x获取对应的索引,注意获取的索引号是当前x号的父元素的索引,要读取parentNode.index

n因为tab标题本身有点击事件,x号的点击事件会向上传递,需要阻止事件冒泡

n将记录下来的索引找到对应的tab标题和tab内容删除

n重新初始化tab标题与tab内容的数量

优化

点击删除选中状态的tab的标题后让前一个tab标题选中

n将索引自减

n手动调用click事件

u删除的标签是未激活状态的状态,原来选中状态的标签的激活样式不变

n点击删除选中状态的tab的标题后让前一个tab标题选中

n如果删除的tab标题未激活,那么原来选中激活的tab标题不变

编辑

n在更新的方法中获取到所有的盛放文本的span标签

n通过遍历绑定双击事件dblclick触发编辑的方法

n在编辑的方法中首先禁止选中文本使用 window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();

n在当前span中创建一个文本框

n在编辑方法中先将之前span标签的文字存储,然后将存储的文字赋值给文本框的value值并且文本默认选中,调用select()方法

n当文本框失去焦点的时候,将修改的内容设置给span

n通过按下回车完成内容的修改,为文本框绑定keyup事件,判断用户的键盘码,调用文本框的失去焦点方法

n获取所有的tab内容,遍历绑定双击事件触发编辑方法

优化

n编辑方法中先将之前span标签的文字存储,然后将存储的文字赋值给文本框的value值并且文本默认选中,调用select()方法

n按下回车方式实现修改,为文本框绑定keyup事件,判断键盘码实现

n获取所有的tab内容元素,遍历绑定双击事件触发编辑方法

About

An object-oriented modular case

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published