javascript - 为什么我用 jQuery 添加的新段落在单击时没有任何反应?

标签 javascript jquery html

我的 html 中有一些段落作为示例,当我单击它时,JQuery 单击会正确激活并执行 de 函数。但是,我有一个按钮可以向正文添加新段落,但新段落在单击时没有执行任何操作,我不知道为什么:

我的 html 正文

        <h1> Test </h1>
        <input type="text" id="newP" value="New paragraph">
        <button id="add"> Add </button>
        <p> Paragraph 1 </p>
        <p> Paragraph 2 </p>

我的js文件

$(document).ready(function(){

$("p").click(function(){
    console.log("Hello");
    this.remove();
});
$("#add").click(function(){
    $("#add").after("<p> " + $("#newP").val() + "</p>");
});
});

两个示例段落正确删除并显示“Hello”,但新段落则不然。我想做一些比删除它们更复杂的事情,所以我需要知道为什么该函数对它们不起作用。 (我必须使用 JQuery)

最佳答案

原因是您在添加新元素之前添加了新的点击监听器。 您可以使用点击处理程序的三参数形式,它也适用于添加的新元素。

$(document.body).on('click', '#add', function(){
    $(this).after("<p> " + $("#newP").val() + "</p>");
});

另一个问题可能是您有多个具有相同 id 的元素。您应该为它们提供 css 类,例如 add,然后选择 .add

关于javascript - 为什么我用 jQuery 添加的新段落在单击时没有任何反应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59089458/

相关文章:

javascript - 如何将新的 Nan::ObjectWrap 从 C++ 传递到 Javascript?

javascript - 为 html 文本区域中的新行添加效果

html - iOS 上的溢出滚动

javascript - 将字符串转换为 float 的最佳方法是什么?

php - js中的html表单验证

javascript - Jquery ajax 仅对某些键执行

javascript - 我如何在 dart 中实现这个 jquery 模式?

javascript - 我如何检测鼠标的下一次悬停?

javascript - 下拉列表以过滤特定列上的行

php - PHP 有没有办法检测请求是否来自浏览器后退按钮?