2013-10-30 57 views
0

所以基本上我使用JQuery製作了一堆按鈕,並且想給它們提供一些常見的「onclick」函數,但希望所述函數知道有關點擊它的按鈕。無論按下哪個按鈕,使用以下方法,警報消息都將打印出「此錯誤使我想要將我的頭撞在牆上10次」。什麼叫人,男人?謝謝你的幫助!JQuery:爲許多動態創建的按鈕之一分配一個獨特的onclick事件

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."); 
} 
+0

apsillers是正確的,該鏈接解釋了您所看到的行爲。 –

+1

apsillers,你當場!通過在你給我的鏈接中應用這些方法,我能夠按照預定的次數在牆上擊敗我的頭。欣賞它! –

回答

0

您需要使用關閉此:

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

這是因爲變量i不再執行點擊功能,當你的期望。您可以執行以下操作:

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