動的に作成されたパネル要素に onclick イベントを割り当てようとしています:
for(var c = 0; c < data.length; c++) {
var user = data[c];
document.querySelector('#userList').innerHTML += '<li class="user" id="button-login-' + c + '"><img src="user.png" /><span>' + user.username + '</span></li>';
document.querySelector('#button-login-' + c).onclick = function() {
self.port.emit('button', {
'action': 'login',
'data': {
'username': user.username
}
});
};
}
しかし、最初の onclick イベントが最後のイベントによって上書きされているようです...助けはありますか?
新しいコードで私はこれを試しました:
for(var c = 0; c < data.length; c++) {
user = data[c];
document.querySelector('#userList').innerHTML += '<li class="user" id="button-login-' + c + '"><img src="user.png" /><span>' + user.username + '</span></li>';
document.querySelector('#button-login-' + c).onclick = function() {
self.port.emit('button', {
'action': 'login',
'data': {
'username': user.username
}
});
};
}
この:
for(var c = 0; c < data.length; c++) {
let user = data[c];
document.querySelector('#userList').innerHTML += '<li class="user" id="button-login-' + c + '"><img src="user.png" /><span>' + user.username + '</span></li>';
document.querySelector('#button-login-' + c).onclick = function() {
self.port.emit('button', {
'action': 'login',
'data': {
'username': user.username
}
});
};
}
ボタンが効かない…