Javascript 动态创建的OnClick处理程序Jquery

Javascript 动态创建的OnClick处理程序Jquery,javascript,jquery,Javascript,Jquery,我有4个css类,它们以特定的方式命名:test-class-0、test-class-1、test-class-2、test-class-3,这样我就可以通过编程方式注册自定义的点击处理程序 以下是我的尝试: for(var i = 0; i < 4; i++) { $('.test-class-'+i).on('click', function(e){ alert(i); }); } for(变量i=0;i

我有4个css类,它们以特定的方式命名:test-class-0、test-class-1、test-class-2、test-class-3,这样我就可以通过编程方式注册自定义的点击处理程序

以下是我的尝试:

for(var i = 0; i < 4; i++) {
  $('.test-class-'+i).on('click', function(e){ alert(i); });
}
for(变量i=0;i<4;i++){
$('.testclass-'+i).on('click',函数(e){alert(i);});
}
完整演示:

for(变量i=0;i<4;i++){
$('.testclass-'+i).on('click',函数(e){
警报(一);
});
}

测试1
测试2
测试3
测试4
for(变量i=0;i<4;i++){
$('.test class-'+i).on('单击'{
i:我
},功能(e){
警报(如数据一);
});
}

测试1
测试2
测试3
测试4
for(变量i=0;i<4;i++){
$('.test class-'+i).on('单击'{
i:我
},功能(e){
警报(如数据一);
});
}

测试1
测试2
测试3

测试4
或者,您可以只使用一个事件处理程序,并在运行时解析类索引:

$('[class*=“testclass-”)。在('click',function()上{
var i=$(this.attr(“类”).replace(“测试类-”,”);
警报(一);
});

测试1
测试2
测试3

测试4
或者,您可以只使用一个事件处理程序,并在运行时解析类索引:

$('[class*=“testclass-”)。在('click',function()上{
var i=$(this.attr(“类”).replace(“测试类-”,”);
警报(一);
});

测试1
测试2
测试3
测试4
使用:

for(变量i=0;i<4;i++){
(职能(一){
$('.testclass-'+i).on('click',函数(e){alert(i);});
})(一)
}

测试1
测试2
测试3
测试4
使用:

for(变量i=0;i<4;i++){
(职能(一){
$('.testclass-'+i).on('click',函数(e){alert(i);});
})(一)
}

测试1
测试2
测试3

测试4
您可以尝试使用此选项,而不是用于:

$('*[class*=“测试类-”])。每个(函数(i){
$(此)。在('单击',函数()上){
警报(i+1)
});
});

测试1
测试2
测试3

测试4
您可以尝试使用此选项,而不是用于:

$('*[class*=“测试类-”])。每个(函数(i){
$(此)。在('单击',函数()上){
警报(i+1)
});
});

测试1
测试2
测试3

测试4
i
在事件处理程序函数之外声明。为什么要这样做,为什么不使用公共类
。测试类
?因为我需要显示不同的数据,例如,数组索引中与i.es6值对齐的数据。答案是使用
let i
而不是
var i
i
在事件处理程序函数之外声明。为什么要这样做,为什么不使用公共类
.test class
?因为我需要显示不同的数据,例如,数组索引中与I.es6值对齐的数据。答案是使用
let I
而不是
var I
非常棒。我喜欢这样做不需要重复需要调用index()!太棒了。我喜欢这样不需要调用index()!