如何在同一个函数中使用事件和变量

How to use event and variables in the same function

function edit(id) {
    
    let name = document.querySelector('#name');
    let price = document.querySelector('#price');


    name.value = products[id].name;
    price.value = products[id].price;
    
    document.querySelector(".update").addEventListener('click', update('e',id));
    
}


function update(e,id) {
    
    e.preventDefault;
    
    let name = document.querySelector('#name');
    let price = document.querySelector('#price');
    
    products[id].name = name.value;
    products[id].price = price.value;
    
    showProduct();
    
}

我想在函数中使用 preventDefault,但无法修复。

 document.querySelector(".update").addEventListener('click', update('e',id));

在这一行中,我为活动发送 'e'。在我这样使用的更新函数中:

e.preventDefault;

但是它不起作用。我该如何解决这个问题。如果你能帮助我,我会很高兴。

您正在以字符串形式发送事件。

改变这个:


function edit(id) {
    
    let name = document.querySelector('#name');
    let price = document.querySelector('#price');


    name.value = products[id].name;
    price.value = products[id].price;
    
    // change
    document.querySelector(".update").addEventListener('click', e => {
      update(e,id)
    });    
}