【问题标题】:JQuery: Using .last() with a created element in a .onJQuery:将 .last() 与 .on 中的已创建元素一起使用
【发布时间】:2018-01-25 22:06:19
【问题描述】:

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

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

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

【问题讨论】:

  • 呃……你的代码和逻辑有很多地方可以改进……我会试着把一些东西放在一个可以理解的答案中
  • 请发布您的代码。对我们来说,您提供的信息不完整,无法理解您的问题

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


【解决方案1】:

请在您下次提问时在问题中发布您的代码的相关部分,或编辑您的帖子。

您正在使用最初设置为 2 的 tabAmount 变量确定新选项卡的位置。但是,当您添加新选项卡时,您绝不会增加此变量。您的代码正在生成新选项卡,但它们只是被放在同一个位置。

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

【讨论】:

  • 顺便说一句,我对“Coogle Grome”笑了笑!
【解决方案2】:

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

移动:

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

进入

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-29
    • 2016-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 2013-02-22
    • 1970-01-01
    相关资源
    最近更新 更多