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

ecshop二次开发transport.js与jquery冲突导致下拉菜单无法弹出, 产品幻灯片无法播放等等

产生原因:

很多网站的样式都使用JavaScript框架:jQuery,

我们在用ECShop做站修改界面时, 也都需用到jQuery库.

而ECShop把AJAX事件和JSON解析放在common.js和transport.js中, 可以说这是ECShop自己封装的一套工具, 但ECShop在封装JSON各种方法的同时对object的模型进行了重写, 这就跟jQuery产生了冲突.


问题现象:

不管冲突的原因是什么, 网站主要会出现以下现象:

1: 网页巨卡无比, 过一段时间才能加载完成.

2: 加载结束之后, ECShop一些功能无法使用, 如产品无法添加购物车, 产品无法比较, 无法评论等.

3: 除了2的现象, 在网页使用到jQuery库做特效的一些功能也无法正常使用, 如: 下拉菜单无法弹出, 产品幻灯片无法播放等等.


解决方法(比如:商品页面goods.dwt):

1: 下载transportNew.js到js目录下(下载地址写在最后)

2: 在goods.dwt页面,将所有引用transport.js文件的地方, 改为transportNew.js

注意! 是所有, 在goods.dwt页面中, 还有引用到library文件夹中各种.lbi文件, 如: 评论comments_list.lbi文件里也有引用到transport.js文件


这样, 上面问题现象描述中的1,3, 已经完美解决了(既:网页不卡了, 下拉菜单可以弹出, 产品幻灯片可以播放等等.)

此时, 添加购物车功能还是无法使用.

继续:

3: 打开js/common.js 文件, 将addToCart函数复制一份, 重命名为: addToCartNew

将新函数: addToCartNew的最后一句

 


 

1

Ajax.call('flow.php?step=add_to_cart', 'goods=' + goods.toJSONString(), addToCartResponse, 'POST', 'JSON');


改成

1

Ajax.call('flow.php?step=add_to_cart', 'goods=' + objToJSONString(goods), addToCartResponse, 'POST', 'JSON');


注意对比两句代码不一样的地方


这样, 产品goods.dwt页面添加评论的功能与jQuery特效的冲突也已经完美解决了!!!!

以上解决方法为商品页面goods.dwt的transport.js文件jQuery库的解决方法.

其他页面也一样!!!!


下载地址如下

14377007784807.rar


转载请注明:谷谷点程序 » ecshop二次开发transport.js与jquery冲突导致下拉菜单无法弹出, 产品幻灯片无法播放等等