Javascript 动态创建的按钮在单击时不会触发

Javascript 动态创建的按钮在单击时不会触发,javascript,jquery,Javascript,Jquery,我根据用户在输入框中输入的内容创建按钮。但是,我链接到动态创建按钮的功能在按下时不会启动 function btnCreate() { num++; userBtn = $("<button>") userBtn .addClass("btn search-term-btn dynamicElement") .appendTo($(".btn-holder")) .text(topics) .attr("data-name", topics); use

我根据用户在输入框中输入的内容创建按钮。但是,我链接到动态创建按钮的功能在按下时不会启动

function btnCreate() {
num++;
userBtn = $("<button>")
userBtn
    .addClass("btn search-term-btn dynamicElement")
    .appendTo($(".btn-holder"))
    .text(topics)
    .attr("data-name", topics);
usedTopics.push(topics + num);
topics = [];
console.log(num);
};

$(".search-term-btn").on("click", ".dynamicElement", function () {
// takes the name of the button 
searchValue = $(".search-term").attr("data-name");
console.log(searchValue);
})

这门课是正确的,我和检查员核对过了。我似乎不明白为什么它没有响应

在DOM上创建click事件

$(document).on("click", ".search-term-btn .dynamicElement", function () {
   console.log(this)
});

您是否在按钮中创建按钮?您需要提供一个“否”,im使用“输入提交”按钮调用一个函数,该函数会导致按钮被创建。您可能会提交表单,并且您的服务器会发送一个新页面作为响应。正如昆汀所说,请发布一个可复制的例子,这样我们就不必猜测了。我的天啊,可能的复制品解决了这个问题。。非常感谢。我一直在回顾一些活动作品,但没有人使用过这个。但这似乎已经解决了这个问题。非常感谢你!委托在jquery 3中已被弃用,您应该使用.on代替.yes,如$document.onclick,'p',函数{$this.after单击我查看另一段。

;};第二个将不能作为。dynamicElement是在加载文档后创建的。
while you are creating the buttons, you can add the onclick function there..
like userBtn = $("<button onlcikc="somefunction(this)">")
$('body').on(  "click",".dynamicElement", function() {  
  //your code
});