似乎不能让JQuery's .on()为通过脚本创建的元素工作

Can't seem to get JQuery's .on() working for elements created through scripting

本文关键字:脚本 创建 工作 元素 on 不能 JQuery      更新时间:2023-09-26

我有一个系统,根据用户选择的金额生成多个地址字段。

最初我使用$("input[name=inputname]"),它对最初加载的字段很好,但在添加更多字段时不起作用。搜索谷歌和这里让我相信我可以使用JQuery的.on函数,虽然我似乎不能得到它的工作,这段代码有什么问题,或者我需要接近这个不同的方式?

$("div.data").on( "change", "input[name^=delivery-address-1]", function() {
  alert( $( this ).val() );
});

Thanks in advance

编辑:嗨,关于"标记为重复",正如我所说,我已经阅读了类似的答案,我知道他们,但是从这些答案中学到的代码似乎不适合我的情况,所以正在寻求进一步的帮助,谢谢。

尝试使用document而不是'div.data',像这样:

$(document).on("change", "input[name^=delivery-address-1]", function() {
  alert($(this).val());
});

根据我的经验(不仅仅是我的经验),在全局级别处理动态元素的事件通常会更好。这意味着您将把事件处理程序附加到文档,并使用选择器筛选器仅在匹配元素时触发它。

,

$(document).on('change', 'input[name^=delivery-address-1]', function(){
  alert('hello');
});