Javascript 强制jquery在任何新添加的dom元素上运行

Javascript 强制jquery在任何新添加的dom元素上运行,javascript,jquery,razor,Javascript,Jquery,Razor,我有以下脚本,其中包含两个选择器:- $(文档).ready(函数(){ if($(“#ChoiceName2”).prop(“选中”){ & $(“#ChoiceTag2,#ChoiceName2”)。每个(函数(){ $(this).change(函数(){ 选择器不会触发任何新添加的Dom元素,通常我使用上的.on来强制jquery在任何新添加的元素上运行,如下所示:- $("body").on('click', '#DCSort', function () { 但我不确定如何将上的添加

我有以下脚本,其中包含两个选择器:-

$(文档).ready(函数(){
if($(“#ChoiceName2”).prop(“选中”){

&

$(“#ChoiceTag2,#ChoiceName2”)。每个(函数(){
$(this).change(函数(){

选择器不会触发任何新添加的Dom元素,通常我使用上的
.on来强制jquery在任何新添加的元素上运行,如下所示:-

$("body").on('click', '#DCSort', function () {

但我不确定如何将
上的
添加到mt first脚本中?

完成您尝试执行的操作的最佳方法是使用没有样式定义的CSS类,但允许您将委托绑定到涉及该类的事件

这样,无论何时将类添加到DOM,委托都会对类进行操作

像这样:

 <button class='DCSort'>Some Button</button>

 $('body').on('click', '.DCSort', function () {
 }
Some按钮
$('body')。在('click','DCSort',函数()上{
}
因为您正在使用
#ChoiceTag2、#ChoiceName2
作为选择器,
$。每个
都不是必需的。因为它将始终只返回一个元素作为ID

     $('body').on("change", "#ChoiceTag2, #ChoiceName2", function () {

这将对新添加的元素起到作用。我不清楚这个问题。问题是什么?请重新表述您的问题。符号AND应该表示任意代码吗?当#ChoiceTag2,#ChoiceName2“被更改时,我的原始脚本应该触发。但是如果我返回一个包含(#ChoiceTag2,#ChoiceName2)的新DOM元素)如果这些新添加的(#ChoiceTag2,#ChoiceName2”)DOM元素被更改,如果您将选择器作为
on
函数中的第二个参数传递,脚本将不会启动。它将检查单击的内容是否与传入的选择器匹配。换句话说,单击事件将放置在
主体上(使用您的引用)然后它会冒泡检查每个元素,看看它是否匹配您传入的选择器。#ChoiceTag2,#ChoiceName2都表示ID,为什么您有。each()用于此目的?它将始终只返回一个元素。因此,each()根本不需要