a有一个“添加到篮子”按钮,该按钮通过ajax提交一个包含所有产品详细信息的表单。此时,当加载网站时,负责该操作的模块会立即加载。不过,我希望它只在单击按钮时加载。这就是我到目前为止所做的:
$('form:not(.contact-form__items)').on('submit', event => {
import('./modules/adding-products-to-basket.js')
.then(module => {
module.AddingProductsToBasket.addProductToBasket(event);
});
});
模块内容:
export const AddingProductsToBasket = {
addProductToBasket (event) {
const _this = AddingProductsToBasket;
event.preventDefault();
$.ajax({
url: 'basket',
method: 'POST',
data: $(event.currentTarget).serialize(),
dataType: 'text',
success: function(response) {
_this.openAddedToBasketLightbox();
}
},
});
}
};
我没有在控制台中得到任何错误,但问题是 event.preventDefault()
在…内 addProductToBasket
不做它的工作,所以用户被带到篮子页面,而不是停留在“添加到篮子”按钮所在的页面上。
1条答案
按热度按时间6fe3ivhb1#
谢谢你们两位的帮助。它正在工作。
在窗体显示以下内容时加载模块:
不是在表单加载时加载模块,而是在表单提交时加载模块:(
event.preventDefault()
在里面AddingProductsToBasket()
(可以删除)