javascript - 单击 jQuery 不工作时删除 div 元素

标签 javascript jquery html css

我需要什么:

我试图通过点击按钮来创建标签。我成功地尝试在点击时创建 div。

问题:

正如人们所见过的所有网站一样,例如在 stack-overflow 中或当您编写电子邮件地址时,当您完成编写文本时,会在您悬停时形成一个“标签”和一个“删除”按钮。

现在我想要这样的东西,但我对如何在 div 上显示那个十字感到困惑。

另外,我的问题是当我使用元素时,我也会提供一些背景颜色,但那是静态的。如果文本变长,则文本部分没有背景颜色。

我该如何解决这个问题?

这是我到目前为止尝试过的:http://jsfiddle.net/abhighosh18/wk9uxfz5/1/

JS:

$('.btnAdd').on('click', function () {
    $('<div/>', {
        id: 'newCo',
        title: $("#prodName").val(),
        text: $("#prodName").val()
    }).css({
        fontWeight: 700,
        width : '30px',
        background : 'lightblue',
        padding: '2px',
        margin: '5px',
        float : 'left'
    }).appendTo("#content");
});

$('#newCo').on('click',function(){
    $(this).remove();
});

最佳答案

一些光照--

$('#newCo').on('点击',function(){ $(this).remove(); });

上面的代码不起作用,因为#newCo 元素在该行执行时不存在。

$(document).on('click','#newCo',function(){ $(this).remove(); });

这行重构的代码会监听文档并将处理首次加载 DOM 时不存在的元素。但是,ID 不是您想在这里使用的...因为 ID 需要是唯一的,如果您单击 .btnAdd 元素,很快就会有多个具有相同 ID 的 div。

有很多方法可以实现您想要的,我只是想说明您的方法失败的原因。

解决方法:您可以在创建 div 的点击函数中链接 .addClass("removable-tag")(在 .appendTo() 之前),然后收听 $(document) .on('click','.removable-tag',function(){...});,这将按预期运行。

关于javascript - 单击 jQuery 不工作时删除 div 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31927775/

相关文章:

javascript - 将 View 的脏状态传播到包含表单

html - 连续段落的 CSS 颜色

php - 如何使用 PHP 更新 SQL 数据库表?

javascript - XML .attributes 不起作用

javascript - 将鼠标悬停在区域上时如何避免 CSS 闪烁?

javascript - 使用选项卡进行闪存交换

jquery - 如何在JQuery中使用回调?

JQUERY 通过参数 ID 获取元素

javascript - 通过 AngularJs 创建的对象没有出现在网页上

JavaScript:从外部访问匿名函数内部的变量