我创建了一个简单的模块,当用户在prestashop中查看产品时,它会加载一个小表单。
当用户查看产品时,它会加载一个JS脚本。
脚本正在加载,但许多函数无法正常工作。我的选择器是正确的,脚本在一个测试环境中工作,而在另一个环境中不工作,所以我有点迷失了方向,或者可能我错过了一些简单的东西。
例如,这将在页面加载时运行(这是我的模块加载的JS脚本的一部分):
//disable AddToCart Button unless criteria are met
function modifyAddToCart(){
if ($('#customer-confirmation-check').prop('checked')) {
alert ('customer confirm check');
$('#add-to-cart-btn').removeClass("toBeCustomized");
$('#customization-required').text("");
$('#add-to-cart-btn span').text("Add To Cart");
$("html, body").animate({ scrollTop: $('#buy_block').offset().top }, 1000);
} else {
alert ('should be toBeCustomized');
console.log( $('#add-to-cart-btn') );
$('#add-to-cart-btn').addClass("toBeCustomized");
$('#add-to-cart-btn span').text("Customize This Item");
$('#customization-required').text("You must customize this product before it can be added to your cart!");
}
}
警报被启动(复选框未被选中),控制台会适当地记录按钮,但其他事情都没有发生。类不会被添加,文本不会被更改。当我在firebug中看到它时,我也没有看到onClick事件与它相关。
是否有某种系统JS脚本可以阻止模块JS在某些情况下应用?
试图弄清楚为什么它在一种情况下有效,但在另一种情况中无效。
事实证明,有人在一个环境中打开了一个选项,可以在页面底部加载JS(这是更好的方法)。
这就产生了不同。
高级参数->性能->将Javascript移动到结束