全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025自考专业(人力资源管理)真题(考点梳理)附答案详解
- 2026年二级建造师继续教育考试试卷及答案
- 2026年物流师仓储管理能力测试卷(附答案)
- 一年级语文下册部编版《语文园地三》
- 口腔颌面外科手术安全分析
- 中西医结合治疗慢性病预防
- 省级医院心肺复苏技术规范
- 车辆服务专业职业前景
- 肺隔离症的临床表现及CT诊断课件
- 恶性肠梗阻多学科协作姑息治疗方案
- 新生儿转运箱使用
- 北师大版数学六年级上册第一次月考测试题及答案
- 幼儿园课程:爱祖国爱家乡
- 水工混凝土结构设计规范sl191-2008
- 山西省建筑工程施工安全资料管理规程表格部分
- 小学道德与法治三年级上册《生命最宝贵》教学反思
- 2023年4月2日湖北省事业单位联考A类《职业能力倾向测验》真题及答案
- 丰田技术员培训手册13原厂p01t
- 《服务设计 用极致体验赢得用户追随》读书笔记思维导图PPT模板下载
- GB/T 16422.2-2022塑料实验室光源暴露试验方法第2部分:氙弧灯
- GB/T 13834-2008纤维用亚麻雨露干茎
评论
0/150
提交评论