2017-03-07 54 views
1

我有一個單擊DOM中的輸入時運行的函數。我想停止檢查元素,直到我的函數可以批准它。我正在嘗試使用e.preventDefault();event.preventDefault();(是否有區別?!),但我沒有成功,我做錯了什麼?使用更多參數的函數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 
} 

我覺得我不是 「得到」 是如何工作的。也許有人可以解釋這是如何工作的,我做錯了什麼?

回答

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

+0

啊......點擊功能必須提供事件對象。謝謝! –