使用更多参数来防止功能失效?

时间:2017-03-07 16:26:09

标签: events javascript-events preventdefault

我有一个在DOM中单击输入时运行的函数。我想阻止元素被检查,直到我的函数可以批准它。我正在尝试使用e.preventDefault();event.preventDefault();执行此操作(有什么不同吗?!)但我没有成功,我做错了什么?

这是我没有preventDefault-part的代码。

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

我想我并没有“得到”这是如何运作的。也许有人可以解释这是如何工作的以及我做错了什么?

1 个答案:

答案 0 :(得分:0)

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