javascript - 动态添加的按钮不起作用

标签 javascript jquery button

我似乎无法弄清楚为什么当我创建一个带有按钮的新 div 时,该按钮不会响应我分配给它的单击功能。我确信我的语法不知何故搞砸了。理想情况下,当我单击“新类别”按钮时,将在其包含的主题 div 内创建一个新类别 div,但它甚至不会响应警报功能。

$(":button.Topic").click(function (event) {
    $("body").append(TopicDiv);
});

//when Category class button is clicked, append Category Div to parent of button clicked
$("button").on("click", function () {
    alert("Hello!");
    /*$( this ).parentNode.append(CategoryDiv);*/
});

这是 jsFiddle:http://jsfiddle.net/KrsVp/5/

最佳答案

您应该使用事件委托(delegate):

$(document).on("click", ":button.Category", function () {
    alert("Hello!");
    /*$( this ).parentNode.append(CategoryDiv);*/
});

这个想法是让父元素监听该事件,然后让它检查是否有任何子元素与 :button.Category 选择器匹配。

最接近的 parent ,表现最好[即。如果可能的话,不要使用document]。

关于javascript - 动态添加的按钮不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17952944/

相关文章:

javascript - 如何使用 Manifest v3 获取当前选项卡 URL?

javascript - 带有流沙插件的悬停效果

ios - 滚动时如何向 UITableViewCell 添加更多按钮?

image - JavaFX 按钮背景图像

javascript - 文本框未重置

javascript - 如何在网页中使用 ECMAScript6 模块

php - 将 jQuery ajax 中的 json 数据作为新行插入到表中

javascript - SetTimeout 在执行一次函数后停止

android - Android 中的小写操作按钮(默认/非自定义)通知

javascript - Highcharts - 灰色图例中的唯一标题