作者/来源:yixinu.com
栏目:运维/编程
日期:2014-02-26 12:21:29
其实ecshop的切屏功能是有bug的。
ec是直接把所有的 blockquote 都设置为display:none; ,然后再把显示的那一块 blockquote 的代码复制到 显示区域,这样内容确实显示了,但是会造成,如果内容区域有 js 加载时执行的代码或绑定了点击事件,会全部失效。。
以下是我修改之后的代码,我把复制去掉了,改成隐藏所有的 blockquote ,然后再显示点击的那个 blockquote ,这样即可解决问题。
{* 316686606@qq.com kyle@yixinu.com *}
//切屏--是按钮,_v是内容平台,_h是内容库
function reg(str){
var bt=$id(str+"_b").getElementsByTagName("h2");
for(var i=0;i<bt.length;i++){
bt[i].subj=str;
bt[i].pai=i;
bt[i].style.cursor="pointer";
bt[i].onclick=function(){
//$id(this.subj+"_v").innerHTML=$id(this.subj+"_h").getElementsByTagName("blockquote")[this.pai].innerHTML;
for(var j=0;j<$id(this.subj+"_b").getElementsByTagName("h2").length;j++){
var _bt=$id(this.subj+"_b").getElementsByTagName("h2")[j];
var ison=j==this.pai;
_bt.className=(ison?"":"h2bg");
}
$id(str+"_h").className = null;
var _bq = $id(this.subj+"_h").getElementsByTagName("blockquote");
for(var h=0;h<_bq.length;h++){
_bq[h].className="none";
}
$id(this.subj+"_h").getElementsByTagName("blockquote")[this.pai].className="";
}
}
//初始化处理
var _bq = $id(str+"_h").getElementsByTagName("blockquote");
for(var h=0;h<_bq.length;h++){
_bq[h].className="none";
}
$id(str+"_h").getElementsByTagName("blockquote")[0].className="";
//$id(str+"_h").className="none";
//$id(str+"_v").innerHTML=$id(str+"_h").getElementsByTagName("blockquote")[0].innerHTML;
}