JavaScript中怎么实现多选框
创始人
2024-12-16 13:23:00
0次

Utile.js

(function () {  Object.prototype.addProto=function (sourceObj) {    var names=Object.getOwnPropertyNames(sourceObj);    for(var i=0;i0){          fileName+=key+".png";          break;        }      }      if(arr.length===0){        return false;      }else{        return {          file:fileName,          w:arr[0].frame.w,          h:arr[0].frame.h,          x:arr[0].frame.x,          y:arr[0].frame.y        };      }    },    getNameXMLData:function (name) {      var fileName=RES.basePath;      for(var key in list){        var elem=list[key].querySelector("[n="+name+"]");        if(elem){          fileName+=list[key].getAttribute("imagePath");          break;        }      }      if(!elem) return false;      return {        file:fileName,        w:elem.getAttribute("w"),        h:elem.getAttribute("h"),        x:elem.getAttribute("x"),        y:elem.getAttribute("y")      }    },    getImage:function (name) {      var obj;      if(RES.type==="json"){        obj=RES.getNameJSONData(name);      }else if(RES.type==="xml"){        obj=RES.getNameXMLData(name)      }      if(!obj)return;      var p=document.createElement("p");      Object.assign(p.style,{        width:obj.w+"px",        height:obj.h+"px",        backgroundImage:"url("+obj.file+")",        backgroundPositionX:-obj.x+"px",        backgroundPositionY:-obj.y+"px",        position:"absolute"      });      return p;    },    changeImg:function (elem,name) {      var obj;      if(RES.type==="json"){        obj=RES.getNameJSONData(name);      }else if(RES.type==="xml"){        obj=RES.getNameXMLData(name)      }      if(!obj)return;      Object.assign(elem.style,{        width:obj.w+"px",        height:obj.h+"px",        backgroundImage:"url("+obj.file+")",        backgroundPositionX:-obj.x+"px",        backgroundPositionY:-obj.y+"px",        position:"absolute"      });    }  }})();

UIComponent.js

var CheckBox=(function () {  function CheckBox(parent) {    this.checkView=this.init(parent);  }  /*   //ES5 单例  CheckBox.getInstance=function () {    if(!CheckBox._instance){      CheckBox._instance=new CheckBox();    }    return CheckBox._instance;  };*/  CheckBox.prototype.addProto({    _label:"",    _checked:false,    init:function (parent) {      if(this.checkView) return this.checkView;      var p=document.createElement("p");      var icon=RES.getImage("f-checkbox");      p.appendChild(icon);      var label=document.createElement("span");      p.style.position=icon.style.position=label.style.position="relative";      icon.style.float=label.style.float="left";      label.textContent="";      Object.assign(label.style,{        fontSize:"16px",        lineHeight:"20px",        marginLeft:"5px",        marginRight:"10px"      });      var h=RES.getNameXMLData("f-checkbox").h;      icon.style.top=(20-h)/2+"px";      p.appendChild(label);      parent.appendChild(p);      this.clickHandlerBind=this.clickHandler.bind(this);      p.addEventListener("click",this.clickHandlerBind);      return p;    },    clickHandler:function (e) {      this.checked=!this.checked;    },    set label(value){      this._label=value;      this.checkView.lastElementChild.textContent=value;    },    get label(){      return this._label;    },    set checked(value){      if(this._checked===value)return;      this._checked=value;      if(value){        RES.changeImg(this.checkView.firstElementChild,"f-checkbox-active");      }else{        RES.changeImg(this.checkView.firstElementChild,"f-checkbox");      }      this.checkView.firstElementChild.style.position="relative";      this.dispatchMessage(value);    },    dispatchMessage:function (value) {      var evt=new Event("change");      evt.checked=value;      evt.elem=this;      document.dispatchEvent(evt);    },    get checked(){      return this._checked;    }  });  return CheckBox;})();var Radio=(function () {  function Radio(parent,groupName) {    this.constructor.supClass.constructor.call(this,parent);    this.groupName=groupName;    this.checkView.self=this;    this.checkView.setAttribute("groupName",groupName);  }  Radio.extendClass(CheckBox);  Radio.prototype.addProto({    clickHandler:function (e) {      // console.log(Model.instance.menuData);      if(this.checked)return;      var list=document.querySelectorAll("[groupName="+this.groupName+"]");      for(var i=0;i

html

   Title      

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...