[英]Big issue with chrome, appended dom elements and back behavior
我正在努力解决一个似乎解决不了的问题。
我正在为客户编写jQuery购物车(请参见此处的演示: http : //thisisnot2.fornacestudio.com/prodotto )。
购物车脚本正在大量操作dom元素。 问题在于,将订单发布到表单页面后,如果您在Chrome浏览器中单击后退按钮,脚本将停止工作(例如:类别在单击后不会显示其内容)。
有人知道是什么原因造成的吗?
谢谢!
好吧,如果您不知道错误来自suchi-cart.js中的351行
jQuery(this).find(".category-content").modal( ... );
以object has no method 'modal'
形式object has no method 'modal'
,我一直没有弄清楚为什么会这样,因为当我最初用硬刷新访问页面时以及导航离开并返回时,我看到了页面中包含的脚本。
编辑 :查看脚本后,我注意到您在页面顶部使用了lazyload
,通过Google https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
包含jQuery 1.6.2 https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
然后在您的head标签中,您还通过<script type='text/javascript' src='http://thisisnot2.fornacestudio.com/wp-includes/js/jquery/jquery.js?ver=1.6.1'></script>
加载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插件加载的<script>
,会立即加载,但是通过Google的jQuery 1.6.2的LazyLoad包含不会通过缓存运行,因为它是一个脚本,因此在前两个脚本将jQuery对象重写为1.6.2并删除加载到该对象中的simplemodal脚本之后加载。
因此,您需要从页面中删除延迟加载jQuery。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.