ECSHOP彻底解决transport.js和jquery的冲突方法
在page_header.lbi文件的最后面添加下面的代码即可,经IETester测试后,ie6及以上都可行。
{insert_scripts files='niuzai/jquery-1.8.3.js'}
<script type="text/javascript">
$(function() {
window.__Object_toJS**tring = Object.prototype.toJS**tring;
delete Object.prototype.toJS**tring;
});
</script>
{insert_scripts files='test.js'}
注:**为大写O-N-S,去掉中间的两个-,被屏蔽了,无语。先声明一下,这不是我自创的,而是看了论坛里的兄弟的相关帖子后,然后我试了没用,因为导入文件顺序的问题,导致不能解决, 所以就发了这个帖子,和大家分享分享。test.js为自己用jquery写的一些代码,要放在jquery文件的后面,注意不能和jquery文件一同 导入,注意顺序,否则会出错。顺序为:先导入transport.js文件{insert_scripts files='transport.js,utils.js'},然后导入jquery文件 ,{insert_scripts files='niuzai/jquery-1.8.3.js'} 再加上这段代码<script type="text/javascript">
$(function() {
window.__Object_toJS**tring = Object.prototype.toJS**tring;
delete Object.prototype.toJS**tring;
});
</script>
最后引入自己用jquery书写的js文件。{insert_scripts files='test.js'}
注: **为大写O-N-S,汗,竟然屏蔽掉,去掉中间的两个-。
2.调用jq之后,将其他jq代码中的$符号替换成jq就行了.
比如将lazyload代码中的$替换成jq:
function lazyload(option){
var settings={
defObj:null,
defHeight:0
};
settings=jq.extend(settings,option||{});
var defHeight=settings.defHeight,defObj=(typeof settings.defObj=="object")?settings.defObj.find("img"):jq(settings.defObj).find("img");
var pageTop=function(){
return document.documentElement.clientHeight+Math.max(document.documentElement.scrollTop,document.body.scrollTop)-settings.defHeight;
};
var imgLoad=function(){
defObj.each(function(){
if (jq(this).offset().top<=pageTop()){
var src2=jq(this).attr("src2");
if (src2){
jq(this).attr("src",src2).removeAttr("src2");
}
}
});
};
imgLoad();
jq(window).bind("scroll",function(){
imgLoad();
});
}
lazyload({
defObj:"#index"
})