如何选择通过javascript添加的元素
我有一个简单的代码,可以检查选择的更改并提醒消息。这是正常的,但当我插入新的如何选择通过javascript添加的元素,javascript,jquery,Javascript,Jquery,我有一个简单的代码,可以检查选择的更改并提醒消息。这是正常的,但当我插入新的。在页面上选择payment元素时,此方法仅适用于第一个元素,而不适用于通过javascript创建的元素 $(document).ready(function() { return $(".select-payment").on("change", function() { return alert("hello"); }); }); 您知道如何使它适用于加载页面后添加的具有类的任何元素吗?选择pay
。在页面上选择payment
元素时,此方法仅适用于第一个元素,而不适用于通过javascript创建的元素
$(document).ready(function() {
return $(".select-payment").on("change", function() {
return alert("hello");
});
});
您知道如何使它适用于加载页面后添加的具有类的任何元素吗?选择payment
类
$(document).on("change", ".select-payment", function() {
alert("hello");
});
同样,从更改处理程序中返回几乎没有意义,更不用说返回警报结果了。您可以使用下面的
事件委派
$(document).on('change', '.select-payment', function () {..
执行上述行时,用DOM中存在的任何closeby容器替换文档
事件委派将事件绑定到父元素,并在Event.target
与指定的选择器匹配时执行处理程序
当以动态创建的元素为目标时,需要使用的委托语法:
$(document).on("change", ".select-payment", function() {
从文档中:
事件处理程序仅绑定到当前选定的元素;他们
在代码调用.on()时页上必须存在。
要确保元素存在并且可以选择,请执行事件
在文档就绪处理程序中为
页面上的HTML标记。如果新的HTML被注入到页面中,
选择元素并在创建新HTML后附加事件处理程序
放入页面中
你为什么要放回执?您必须将事件处理程序附加到文档,而不是现有的。请选择“付款”
试试这个:$(document).on(“change”,“.select payment”,function(){…})代码>
为了获得更好的性能,您可以使用DOM中始终存在的任何更接近的父元素替换文档。像
$('#closestId').on("change", ".select-payment", function () {
alert("hello");
}
);
如果使用$(“document”),jQuery将搜索名为document like的节点/标记,并且不会找到任何内容,因为document实际上是一个对象
但是您可以使用$(“body”),因为body是DOM的节点/元素。您以前检查过这个吗?-另外,通过javascript添加了什么样的元素?当使用“开”来授权listenersKinda时,这一点很重要,因为高代表性用户会跳起来回答网站上最常被问到的问题之一,而不是投票关闭……我以为答案是$(“.select payment”).live(“change”,function),但所有聪明人似乎都同意$(document)。on。区别是什么?@Matt.live()
早就被弃用,甚至从最新版本中删除。
$('#closestId').on("change", ".select-payment", function () {
alert("hello");
}
);