单击小标签右上角的按钮以删除标签。开发想法是将事件绑定为“ X”元素。触发事件后,通过父元件1i获取电缆引用值,然后使用此索引值删除相应的LI和部分,并在删除删除效果后更新选项卡。
让我们开始编写代码。
(1)在udeatNode()方法中获取所有“ x”元素,特定代码如下。
(2)在init()方法的for循环中,单击事件绑定到每个“ x”元素。
在上面的代码中,第四代码传递到removetab0方法,以触发对象和事件对象E到事件对象。
(3)编写removetab0事件以实现标签的删除。特定代码如下。
removetab(el,e){
e。stoppropagation();//防止冒泡并防止LI的点击事件切换页面。
var index = el.parentnode。指数;//获取父元素的索引
this.lis [索引]。消除 ();
这。[index] .remove();
this.init();}在上面的代码中,因为“ x”元素是小标签li元素的子元素,当单击“ x”时,它会引起冒泡,从而导致li clice click click ocking everts soyou需要阻止事件通过第二行代码冒泡。
(4)删除LI和部分元素后,需要选项卡的选择状态。有两种情况。一种是删除当前显示的选项卡页面。删除后,将上一个选项卡页面设置为选定的状态;
另一种情况是删除尚未打开的标签。目前,原始选择状态应保持不变。
为了区分这两个状态,在删除选项卡页面后,确定当前是否有一个打开的选项卡页面。如果不存在,则意味着打开打开的选项卡已打开。状态足够,特定代码如下:
removetab(el,e){
....(原始代码)
if(!this。Main。QuerySelector('。liactive')){this.lis [index -1] && this。lis [index-] .click();
}
}在上面的代码中,第三个代码用于确定是否存在主要元素中的选项卡。如果不是,则将执行IF中的代码。
第四代码用于将上一个选项卡页面设置为选定状态。设置之前,请确定是否有一个选项卡页面可以避免所有关闭时的程序错误。
(5)通过浏览器访问测试,观察是否已实现标签页的功能。