JQuery:将一个独特的onclick事件分配给许多动态创建的按钮之一

时间:2013-10-30 15:52:52

标签: javascript jquery onclick

所以基本上我用JQuery制作了一堆按钮,并希望给它们一些常见的“onclick”功能,但希望所述功能能够知道点击它的按钮的独特信息。使用下面的方法,警告消息打印出“这个错误让我想要将我的头撞到墙上10次”,无论按下按钮。什么怪,男人?谢谢你的帮助!

function createButtons()
{
 for(var i=0; i<10;i++)
 {
  $('#Mystical_land_of_buttons').append('<button class="'+i+'">'+i+'</button>');
  $('button.'+i).click(function(){gimmeYoDigits(i);});
 }
};

function gimmeYoDigits(id)
{
 alert("This bug makes me want to beat my head against a wall "+id+" times.");
}

2 个答案:

答案 0 :(得分:0)

您需要使用闭包:

for(var i=0; i<10;i++) {
    // ...
    (function(i) {
        $('button.'+i).click(function(){gimmeYoDigits(i);});
    })(i);

答案 1 :(得分:0)

这是因为变量i不再是执行click函数时的预期。您可以执行以下操作:

var btn = $('<button>'+i+'</button>');
$('#Mystical_land_of_buttons').append(btn);
btn.data('id',i).click(function(){gimmeYoDigits($(this).data('id'));});