Javascript 动态分配按钮ID并通过$.proxy()传递
使用each函数创建多个按钮。我如何给每个按钮一个id?基本上,我需要能够将按钮id传递给Javascript 动态分配按钮ID并通过$.proxy()传递,javascript,jquery,Javascript,Jquery,使用each函数创建多个按钮。我如何给每个按钮一个id?基本上,我需要能够将按钮id传递给myFunc 这是我尝试过的,但没有运气 var count=0; $.each(xc, function(i, stNum) { count++; $('<input class="colBtn" type="button">') .prop('id', 'p'+count) .on('click', $.proxy(myFunc, this.id)) .app
myFunc
这是我尝试过的,但没有运气
var count=0;
$.each(xc, function(i, stNum) {
count++;
$('<input class="colBtn" type="button">')
.prop('id', 'p'+count)
.on('click', $.proxy(myFunc, this.id))
.appendTo ('#par2');
});
function myFunc(theID){
alert(theID); //currently undefined
}
var计数=0;
$.each(xc,function(i,stNum){
计数++;
$('')
.prop('id','p'+计数)
.on('click',$.proxy(myFunc,this.id))
.appendTo(“#par2”);
});
函数myFunc(theID){
警报(theID);//当前未定义
}
在这种情况下,更好的模式是委托事件处理程序。这样,您就不需要在每次迭代中附加事件挂钩,并且可以使用单个处理程序从单击的元素中读取id
属性。试试这个:
$.each(xc, function (i, color) {
$('<input class="colBtn" type="button" />')
.prop('id', 'p' + i)
.appendTo('#par2');
});
$('#par2').on('click', '.colBtn', function() {
alert(this.id);
});
谢谢,看起来不错。但是,如果我需要传递类似于
.on('click',$.proxy(myFunc,this.id,color[0])之类的内容,该怎么办?
?再次感谢。让我尝试在代码中实现您的建议。:)没问题,很乐意帮忙
$.each(xc, function (i, color) {
$('<input class="colBtn" type="button" />')
.prop('id', 'p' + i)
.data('color', color[0])
.appendTo('#par2');
});
$('#par2').on('click', '.colBtn', function() {
alert(this.id);
alert($(this).data('color'));
});