最新消息: 新版网站上线了!!!

ecshop之transport和jquery冲突之解决方案

ECSHOPjquery冲突的问题由来已久,解决方法大多繁琐,且在一些小地方会出错,如产品比较功能等,本文中的方法结合了网上最新公开文章与本站实际开发过程中的经验,基本上可完美解决ECSHOPJQUERY的冲突,经测试,兼容ECSHOP原有所有的功能,包括产品比较功能,而且修改步骤简单明了:
1、修改文件:/js/transport.js
在文件最底部增加代码:
if (Object.prototype.toJSONString){
var oldToJSONString = Object.toJSONString;
Object.prototype.toJSONString = function(){
if (arguments.length > 0){
return false;
}else{
return oldToJSONString.apply(this, arguments);
}
}
}
2、修改文件:/js/compare.js
查找代码:
this.timer = window.setInterval(this.relocation.bind(this), 50);
修改为:
this.timer = window.setInterval(this.bind(this.relocation,this), 50);
查找代码:
lastScrollY : 0
在代码上面一行增加代码:
 bind : function(obj1,obj2)
{
return function()
{
obj1.apply(obj2, arguments);
}
},
3、在以下模板文件中,找到嵌入global.js文件的代码,删除嵌入global.js
brand.dwt
brand_list.dwt
category.dwt
exchange_list.dwt
search.dwt
4、下载最新版的jquery库文件到模板目录中,如:
/themes/temlatename/images/js/jquery.1.5.2.js
如果你的模板中没有对应目录,则新建目录拷入jquery文件即可
5、修改文件:/themes/temlatename/library/page_header.lbi
在顶部加入代码:
<script src="images/js/jquery.1.5.2.min.js" type="text/javascript"></script>
<script type="text/javascript">var $$=jQuery.noConflict();</script>
注意,以后调用JQUERY对象要用两个美元符$$,不要用一个$,因为一个$与ECSHOP原有的函数同名有兼容问题。
6、修改完毕!放心使用你的JQUERY特效吧
 
PS:经测试第45点无法成功,冲突是没了,但是jQuery的特效也消失了,第2点有成功,第一点有待考究,做了没有出现异样

转载请注明:谷谷点程序 » ecshop之transport和jquery冲突之解决方案