javascript - jQuery 不适用于动态添加的元素

标签 javascript jquery

我想使用.on在动态创建的元素上...虽然它不起作用,是的,我正在使用选择器:)

$(".metadata").on("click", "i.icon-remove", function () {
    console.log("what");
    $(this).parent(".metadata").slideUp(function () { $(this).remove(); });
});

这非常适合现有内容,但不适用于动态创建的任何内容。初始内容和动态内容都使用完全相同的创建方法,因此我知道它们的签名是相同的,有什么想法吗?

这是我的 HTML,第一个项目存在于 HTML 中,第二个项目是动态创建的

<div class="metadata">
    <input type="text" value="" style="width: 200px;">
    <i class="icon-remove"></i>
</div>
<div class="metadata" style="">
    <input type="text" maxlength="100" style="width: 200px;">
    <i class="icon-remove"></i>
</div>

最佳答案

试试这个

$(document).on("click", ".metadata i.icon-remove", function () {
    console.log("what");
    $(this).parent(".metadata").slideUp(function () { $(this).remove(); });
});

关于javascript - jQuery 不适用于动态添加的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20887982/

相关文章:

javascript - Bootstrap 导航中的居中对齐导航项

javascript - 单击按钮时查找自动生成的文本框 ID

php - JS 中的开源国家/地区选择器

javascript - 如何将图像从 Flask 服务器发送到前端的 JavaScript 显示?

javascript - 解析一个URL(作为字符串)并将每个子页面拼接成一个数组

javascript - 使用 Express 上的 API key + Secret 保护我的 RESTful API

javascript - javascript 中数字未从对象传递到方法

javascript - 大图片无法上传Ajax/Jquery,FormData为空

javascript - 在页面加载时触发具有不同内容的相同模态

javascript - 获取 FancyTree 中的焦点节点