全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Js制作自定义控件在web开发中常常要使用js,为了提高效率一般都会制作js的类文件。这样在使用中更新复用都很方便。下面按照我工作中的一个案例,介绍如何定义js类文件制作自定义的控件。一、设计需求这个需求中,我们要制作一个,从webservice上获取一组学生成绩信息,然后在页面上按照及格与否显示出来。当然还要加上一些简单的互动效果。按照MVC的设计,我们定义M(数据模型)包括数据连接和数据的分析重组。V表现层,使用document.write的方法写页面。 C容器,控制层。将M与V联系起来。 他们分别命名成assessmentList(表现层),assessmentListData(数据层),assessmentListContrl(控制器)。二、表现层assessmentList(表现层)。根据我的需求主要有2个参数,1个是成绩的及格线,我们叫cutScore。第二个参数就是表现层的数据源,我们这里定义成一个数组Array,因为方便排序,叫scoreArray。代码如下:/ JavaScript Document MVC - V/自定义assessmntList对象/该对象分3种显示状态,下载中;没有成绩单;和成绩列表 /表现层function assessmentList(cutScore,scoreArray) this.cutScore = cutScore;/及格分数 this.scoreArray = scoreArray; this.divGuid = Math.random(); /内部方法,注意:使用this.这样的语法可以使方法私有化,成为实例方法,这样就不会出现方法被外部程序误用的事情 this.hideDiv = function (id) var mydiv = document.getElementById(id); mydiv.style.display = none; this.writeList = function (myArray,cutScore) var tmparray = myArray; tmparray.sort(); for(var i in tmparray) this.addAssementItem(String(assessmentDivLists+this.divGuid),tmparrayi,cutScore); this.showDiv = function showDiv(id) var mydiv = document.getElementById(id); mydiv.style.display = block; this.addAssementItem = function (id,nu,cutScore) var mydiv = document.getElementById(id); /alert(mydiv.id) mydiv.innerHTML+=this.addAssementItemContent(nu,cutScore); this.addAssementItemContent = function (nu,cutScore) var passstr= if(Number(nu*100)Number(cutScore) passstr=pass else passstr =nopass var str = ; str+=Math.floor(Number(nu)*100); str+=; /alert(str) return str; ;var _assessmentList = new assessmentList(); assessmentLtotype.build = _bulidassessmentList; function _bulidassessmentList() /构造 document.writeln(下载成绩信息.这是你第一次答题。成绩单); if(this.scoreArray=null) this.hideDiv(assessmentDivNodata+this.divGuid); this.hideDiv(assessmentDivList+this.divGuid); else if(this.scoreArray.length=0) this.hideDiv(assessmentDivLoad+this.divGuid); this.hideDiv(assessmentDivList+this.divGuid); else if(this.scoreArray.length0) this.hideDiv(assessmentDivLoad+this.divGuid); this.hideDiv(assessmentDivNodata+this.divGuid); this.writeList(this.scoreArray,this.cutScore); this.hideDiv(assessmentDivLists+this.divGuid); ;/assessmentLtotype.bulidAssessmentList = function (myArray,cutScore) if(myArray=null|myArray=undefined) else var tmparray = new Array(); tmparray =myArray; tmparray.sort(); for(var i in tmparray) this.addAssementItem(String(assessmentDivLists+this.divGuid),tmparrayi,cutScore); if(myArray.length0) this.hideDiv(assessmentDivLoad+this.divGuid); this.hideDiv(assessmentDivNodata+this.divGuid); this.showDiv(assessmentDivList+this.divGuid) else if(myArray.length=0) this.hideDiv(assessmentDivList+this.divGuid); this.hideDiv(assessmentDivLoad+this.divGuid); this.showDiv(assessmentDivNodata+this.divGuid) 以上代码很简单,要注意的是。assessmentLtotype.bulidAssessmentList = function (myArray,cutScore).这是生命了一个实例方法,主要是方便用户使用的刷新数据源的。另外,我们在document.writeln时对每个创建的div的id加了一个随机生成的数字后缀。这样做是为了避免一个页面出现2个以上的实例时,div的id不重复,div的onmouseover事件有唯一性。其中var _assessmentLi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省济南市商河县2027届数学六年级第一学期期末调研试题含解析
- 厦门市翔安区2027届三年级数学第一学期期末综合测试试题含解析
- 湖北省黄冈市罗田县2027届三年级数学第一学期期末考试试题含解析
- 河北省石家庄市藁城市2027届四年级数学第一学期期末考试试题含解析
- 山东省菏泽市开发区2027届数学四上期末统考试题含解析
- 消防系统部署执行方案
- 窗帘定制类目运营方案
- 精密仪器生产质量管理体系优化方案
- 公交车企业运营管理方案
- 制定舆情应对工作方案
- 管路知识培训课件
- 收纳美学培训课件图片
- 道路施工中的风险识别与管理试题及答案
- 国有企业投融资风险管理
- 刘润年度演讲2024
- 人教版九年级上册-历史全册课件(课件)【部编教材】
- 中建三局项目目标责任成本测算培训资料
- 手术患者的转运交接2
- JBT 7901-2023 金属材料实验室均匀腐蚀全浸试验方法 (正式版)
- 出货检验报告 A
- Invoice商业发票模板
评论
0/150
提交评论