作者/来源: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; }