ECshop与JQuery冲突的问题由来已久,解决方法大多繁琐,且在一些小地方会出错,如产品比较功能等,本文中的方法结合了网上最新公开文章与本站实际开发过程中的经验,基本上可完美解决ECshop与JQuery的冲突,经测试,兼容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特效了!

提供transport.js与compare.js文件下载:

JQuery&Transport-Compatible