我在Minicart,“产品”视图页面和“ 结帐”页面中遇到JavaScript类型错误。
TypeError: $.widget is not a function
$.widget('mage.priceBox')
$.widget('mage.dataPost')
我该如何解决?
我在Minicart,“产品”视图页面和“ 结帐”页面中遇到JavaScript类型错误。
TypeError: $.widget is not a function
$.widget('mage.priceBox')
$.widget('mage.dataPost')
我该如何解决?
Answers:
我在使用Porto Theme时遇到了同样的问题。就我而言,有时可以识别jQuery,有时不能识别。不幸的是,我不了解原因,但是找到了解决方案。
简而言之:合并所有javascript文件。
Stores -> Configuration -> Advanced -> Developer -> JavaScript Settings
启用:
建议部署静态文件
bin/magento setup:static-content:deploy
清除缓存下 System -> Cache Management
Additional Cache Management
区域中选择按钮Flush CSS/Javascript Cache
Flush Magento Cache
事后现在清除浏览器中的缓存并重新加载。
对于开发此解决方案并不令人满意,但至少对于生产而言,使用它应该是一个有效的解决方案,并且没有不可预测的行为。
希望能帮助到你..
map: { '*': {
被使用,有时paths: {
……
我也遇到了这个问题,但随后浏览了这篇文章:http : //www.danjoseph.me/2016/09/16/magento-2-widget-not-function/
他在文章中解释说,第二次在页面上加载了jquery,因此覆盖了magento先前加载的版本。对我来说,这是一个出于某种原因也在加载jquery的市场营销脚本。jQuery只能在此标签的头中加载一次,而所有其他标签都应删除。
<script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="jquery" src="http://seatup.local/pub/static/frontend/Seatup/theme/en_US/jquery.js"></script>
转到主题文件夹,然后在Magento_Theme文件夹中找到以下文件
default_head_blocks.xml
并更换
<script src="jquery.js" />
与
<remove src="jquery.js" />
确保清除缓存并刷新页面。
我有同样的问题,并使用上述方法解决了。
Uncaught Error: Bootstrap's JavaScript requires jQuery at bootstrap.min.js:6