jquery,Ecshop与JQuery冲突的解决办法

ECShop和JQuery的冲突主要主要包含2个部分:
1、$()函数冲突;
2、Ecshop处理JSON的方法是基于对模型的重写的,问题出现在Object模型的重写上和JQuery冲突了。
做前端的时候可能很多效果需要用到JQuery,如果改JQuery的话以后做页面的时候就很多限制了,所以最好的解决办法还是改ECShop那部分。
1、$()函数冲突 这个很好解决,在global.js里面把16行的$()函数定义随便换个名字例如:$ecshop() ; 然后用Dreamweaver搜索整个目录,看看哪些地方有关键字“$(”的,把原先用$()函数的改成用$ecshop()这个函数。但是要注意别改了使用JQuery的那些页面的$()函数,改系统自带的那部分就好。
2、Object重写冲突的问题就麻烦点了。ECShop处理JSON的部分在transport.js里面,但是我搜索了一下整个ECSHOP目录发现后台也用到transport.js这个文件,所以尽量不要去动它,要不然后台也要改更麻烦。那么我的办法就要把transport.js复制出多一份出来修改供前端页面使用,现在复制多一个名为transport_2.js的文件出来修改。我的方案就是使用JQuery的JSON插件来代替ECShop里面整个JSON处理模块。先把transport_2.js里面对象重构添加JSON处理部分删除(大概是450行开始到737行),然后网上下载JQuery的JSON插件,把代码复制进去transport_2.js里面。然后用Dreamweaver把JS目录和模板目录搜索关键字“.toJSONString”和“.parseJSON”,把xxx.toJSONString换成$.toJSON(xxx),把“xxx.parseJSON”换成“$.evalJSON(xxx)”;
到此两个冲突都解决了,但是要注意的是JQuery必须是放在第一个加载的,要放在其他JS前面否则可能会出错。
基于JQuery的JSON插件下载地址:
http://jquery-json.googlecode.com/files/jquery.json-1.3.js
Tags:  ecshop jquery

延伸阅读

最新评论

发表评论