HOME 生活记录运维/编程
作者/来源: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;
}


分享到:

Copyright © 2013-2014 yixinu.com 湘ICP备14004402号

QQ:316686606  Email: 316686606@qq.com