似乎无法让JQuery的.on()为通过脚本创建的元素工作

时间:2014-06-30 15:58:43

标签: javascript jquery

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

最初我使用的$("input[name=inputname]")适用于最初加载的fiedls,但在添加更多时不起作用。搜索谷歌和这里让我相信我可以使用JQuery的.on功能,虽然我似乎无法使它工作,这个代码是否有任何问题或者我需要接近这个另一种方式?

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

提前致谢

编辑:嗨,关于标记为重复',正如我所说,我已经阅读了相似的答案并且意识到了这些答案,但从这些答案中学到的代码似乎并不起作用在我的情况下,所以正在寻求进一步的帮助,谢谢。

2 个答案:

答案 0 :(得分:1)

尝试使用document而非'div.data',如下所示:

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

答案 1 :(得分:-1)

根据我的经验(而不仅仅是我的经验),在全球范围内处理动态元素事件往往更好。这意味着您将附加事件处理程序来记录并使用选择器过滤器仅为匹配元素触发它。

例如:

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