JQuery:使用.last()和.on中创建的元素

时间:2018-01-25 22:06:19

标签: javascript jquery events tabs google-chrome-app

我目前正在制作类似于Google Chrome的标签结构。我最近制作了一个“新标签”按钮和功能,添加了一个新选项卡。现在我的功能只创建一个标签。我的代码基于使用$(".tab-clickable").last().after()将下一个标签元素放在HTML树中的位置。最后一个.tab-clickable元素表示最近选项卡的最后一部分。

这是我的代码:https://codepen.io/lectrician1/pen/baOxdO

我最初使用.click事件,但切换到.on,因为我发现找到上次创建的标签时出现问题。所以我进行了调试测试,显然.on不是问题,而是$(".tab-clickable").last().after()但请记住,我的代码仍会创建一个标签,但只有一个标签。 我认为问题必须涉及找到刚刚在第一个标签中创建的最后一个.tab-clickable元素。

2 个答案:

答案 0 :(得分:1)

请在下次提出时,在问题中发布代码的相关部分,或修改帖子。

您正在使用最初设置为2的tabAmount变量确定新标签的位置。但是,当您添加新标签时,您不会增加此变量。你的代码正在生成新标签,但它们只是放在彼此相同的位置。

您需要解决的问题是将tabAmount++添加到函数的末尾(如果删除标记,则将其递减,或者每次从长度中取出)

答案 1 :(得分:0)

主要问题是您只在页面加载时检查tabAmount。每次要添加另一个以获取更新计数时需要检查

移动:

var tabAmount = $(".tab-clickable").length;

进入

$("#button").on("click", function() {
   var tabAmount = $(".tab-clickable").length;
   // other code remains same