具有更多参数的函数中的 preventDefault?

preventDefault in function with more parameters?

单击 DOM 中的输入时,我有一个 运行 的功能。我想停止检查该元素,直到我的功能可以批准它。我正在尝试使用 e.preventDefault();event.preventDefault(); 来做到这一点(有什么区别吗?!)但我没有成功,我做错了什么?

这是我的代码,没有 preventDefault 部分。

$(document).on("click","[data-item]", function() {
    cart.updateCart(this);
});

cart.updateCart = function(target) {
   // do stuff and perhaps check the input element
}

我试过这个,但没有用:

$(document).on("click","[data-item]", function() {
    cart.updateCart(this, event);
});

cart.updateCart = function(target, event) {
    event.preventDefault();
    console.log(event); // returns MouseEvent -- is this even the correct "event" ?
   // do stuff and perhaps check the input element
}

我想我不是"getting"这是怎么回事。也许有人可以解释这是如何工作的以及我做错了什么?

event 应该是传递给点击处理程序的第一个参数。所以你的代码真的应该是这样的。:

$(document).on("click","[data-item]", function(event) {
    cart.updateCart(this, event);
});

cart.updateCart = function(target, event) {
    event.preventDefault();
    console.log(event); // returns MouseEvent -- is this even the correct "event" ?
   // do stuff and perhaps check the input element
}

您可以阅读有关防止默认操作的更多信息here