javascript - jQuery - 使动态创建的 DIV 在单击时自行删除

标签 javascript jquery html css

一直在纠结这个问题。真的希望有人能帮助我。

我正在尝试制作当您单击它们时可移动的 div。 他们有一个添加和删除的 css 类“tag-show”(这个有效),所以我猜选择器似乎没问题..?

为什么 $(this).remove() 不起作用?

$(document).ready(function() {
// selectors
var module = $(".divCreate");
var list = module.find(".listTag");
var button = module.find(".divButton");

// the actual issue
button.click(function() {
        list.append("<div class='tag'>Tag</div>");
        setTimeout(function() {
            list.find(".tag").last().addClass("tag-show").on("click", function() {
                $(this).removeClass("tag-show");
                setTimeout(function() {
                    $(this).remove();
                },190);
            });
        },40);

})

});

最佳答案

“this”在您的 setTimeout 中失去了它的上下文。 添加一个包含这个的 var 并改用那个。 像这样

var self = $(this);
setTimeout(function() {
   $(self).remove();
},190);

我认为这会解决问题。

关于javascript - jQuery - 使动态创建的 DIV 在单击时自行删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32848045/

相关文章:

javascript - 如何用jQuery获取url的最后两个字符?

javascript - 悬停时的 Animate.css

javascript - 如何使用 babel 为我的 js 服务模块实现经过身份验证的 es 7 装饰器

javascript - 我可以使用 JavaScript 将 Fetch 的结果存储在全局变量中吗?

javascript - 在加载后将字符串附加到 future 元素(jquery)

jquery 宽度不工作

javascript - 嵌套列表 css 问题

javascript - 给定一串 HTML 代码,我如何遍历每个标记并删除所有 "event"属性?

javascript - Foreach 验证基于 foreach 列表中的最后一个输入进行验证

javascript - 从 JavaScript 添加 HTML 会从输入中删除书面文本