基本的に、この関数は、ユーザーがプリンタを追加したり、現在のプリンタを編集したいときにモーダルを開きます。プリンタは、さまざまな特性を備えたテーブルに配置されています。eventListener内で親関数の引数を使用する方法は?
openmodal関数の行パラメータは、イベントが発生した行です。しかし、私がedit
eventListenerの中でこの行にアクセスしようとすると、人が行の編集を選択したときに起動され、編集された最初の行にしかアクセスしません。
eventListenerで正しい行を使用するにはどうすればよいですか?
function openmodal(option, row) {
backdropModal.style.display = "block";
modal.style.display = "block";
if (option === 'add-new') {
edit.style.display = 'none';
}
edit.addEventListener('click', function (event) {
var editedPrinter = new Printer(
document.getElementById('post-brand-input').value,
document.getElementById('post-type-input').value,
document.getElementById('post-code-input').value,
document.getElementById('post-color-input').value,
document.getElementById('post-quantity-input').value,
document.getElementById('post-updated-input').value,
document.getElementById('post-name-input').value,
document.getElementById('post-location-input').value,
document.getElementById('post-notes-input').value,
document.getElementById('post-min-quantity-warning').value
);
while (row.firstChild) {
row.removeChild(row.firstChild);
}
addPrinter(row, editedPrinter);
event.stopImmediatePropagation();
});
addNew.addEventListener('click', addNewPrinter);
}
モーダルを開くたびにリスナーを追加したくない場合があります。すべてのリスナーがスタックするので、ユーザーが 'edit'をクリックすると、すべてのリスナーが実行されます。 – Barmar