我正在努力解决一个明显无解决方案的问题。
我正在为客户编写一个jQuery购物车(请参阅此处的演示:http://thisisnot2.fornacestudio.com/prodotto)。
购物车脚本正在大量操作dom元素。 问题是,在将订单发布到表单页面后,如果您点击Chrome浏览器中的后退按钮,脚本将停止工作(例如:类别在单击后不会显示其内容)。
有人知道是什么原因引起的吗?
谢谢!
答案 0 :(得分:1)
好吧,如果您不知道错误来自soi-cart.js中的第351行
jQuery(this).find(".category-content").modal( ... );
以object has no method 'modal'
的形式,我还没有弄清楚为什么到目前为止,当我最初通过硬刷新以及导航和返回时点击页面时,页面中包含脚本。
修改强>:
在查看脚本后,我注意到您使用页面顶部的lazyload
通过google https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
然后在你的head标签中你还加载了jQuery 1.6.1的本地副本
<script type='text/javascript' src='http://thisisnot2.fornacestudio.com/wp-includes/js/jquery/jquery.js?ver=1.6.1'></script>
最后,在页面的最底部,您可以包含简单模式脚本
<script type="text/javascript" src="http://thisisnot2.fornacestudio.com/wp-content/themes/notatemplate/cart/jquery.simplemodal.1.4.1.min.js"></script>
我的理论是对页面进行硬刷新,首先加载两个jQuery脚本,然后加载simplemodel脚本,当然将其.model()
方法扩展到jQuery对象上。
但是当你离开页面并返回通过<script>
加载的脚本时,jQuery 1.6.1和simplemodel插件会立即加载,但是LazyLoad包含的jQuery 1.6.2通过Google不会通过缓存运行它是一个脚本,因此在前两个脚本覆盖jQuery对象到1.6.2并删除加载到对象中的simplemodal脚本后加载。
所以你需要从页面中删除延迟加载jQuery。