Javascript 是否使用更多参数在函数中设置默认值?

Javascript 是否使用更多参数在函数中设置默认值?,javascript,events,dom-events,preventdefault,Javascript,Events,Dom Events,Preventdefault,我有一个在DOM中单击输入时运行的函数。我想停止检查元素,直到我的职能部门批准它。我正试图使用e.preventDefault()来实现这一点或事件.preventDefault()(有什么区别吗?!)但我没有成功,我做错了什么 这是我的代码,没有默认部分 $(document).on("click","[data-item]", function() { cart.updateCart(this); }); cart.updateCart = function(target) {

我有一个在DOM中单击输入时运行的函数。我想停止检查元素,直到我的职能部门批准它。我正试图使用
e.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
}

我想我还没“明白”这是怎么回事。也许有人可以解释这是如何工作的以及我做错了什么?

事件应该是传递到单击处理程序的第一个参数。所以你的代码应该是这样的:

$(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
}

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

Ahh…单击功能必须提供事件对象。谢谢