- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Javascript MVC ——Controller
原文:/docs.html#who=jQuery.Controller
翻译: 刘贵学(liuguixue@)
控制器是使用代理将事件处理组织起来。如果您的应用中有事件发生(用户点击或模型实例更新)应当由控制器处理并响应此事件。
控制器可使您的代码更明确,可复用性与架构性更强,这可自动与底层代码相隔离,要了解更多关于控制器理论及其相关特性,请关注Jupiter的博客。
基础示例
替换前:
$(function(){??
??$(#tabs).click(someCallbackFunction1)??
??$(#tabs?.tab).click(someCallbackFunction2)??
??$(#tabs?.delete?click).click(someCallbackFunction3)??
});??
替换后:
$.Controller(Tabs,{??
??click:?function()?{...},??
??.tab?click?:?function()?{...},??
??.delete?click?:?function()?{...}??
})??
$(#tabs).tabs();??
Tabs实例
使用Controller
控制器(Controller)可以帮您组织并构建jQuery插件。它可用于构建一些简单的微件,例如slider,也可将多个微件组成一些更大的。要理解如何使用控制器(Controller),您还需要了解一般的jQuery微件生命周期,以及如何映射到控制器的功能。
创建一个控制器类
$.Controller(MyWidget,??
{??
??defaults?:??{??
????message?:?Remove?Me??
??}??
},??
{??
??init?:?function(rawEl,?rawOptions){??
????this.element.append(??
???????div+this.options.message+/div??
??????);??
??},??
??div?click?:?function(div,?ev){??
????div.remove();??
??}???
})??
这将创建一个叫做$.fn.my_widget的?jQuery辅助功能,可用于在html元素上建立一个新的控制器(Controller)实例。
在html元素上创建一个控制器实例
$(.thing).my_widget(options) // 调用new MyWidget(el, options)
它在每个?.thing?元素上调用了MyWidget(el, options)。当创建一个(类的)新实例时,将调用类的原型方法 setup与init,其中Controller的setup函数:
设置this.element,并添加控制器的名称与元素的类名;
将默认的对象参数设置给 this.options;
在控制器的$.data中保留一个引用;
绑定所有的事件处理函数
控制器响应事件
通常,Controller的事件处理是自动绑定的,Controller可有多种方法监听事件。
当事件发生时,this(当前Controller实例的引用)的回调函数会被调用,这样可以更方便的使用辅助函数,并将状态保存在控制器里。
微件的销毁
如果元素从页面上移除,jQuery.Controller.destroy函数会被调用,专用于存放处理卸载功能。当然,您也可以使用其他方法处理卸载方法:
$(.thing).my_widget(destroy);??
Todos 例子
让我们看一个非常简单的例子,待办事列表与新建按钮,您的HTML应当如下:
div?id=todos??
?ol??
???li?class=todoLaundry/li??
???li?class=todoDishes/li??
???li?class=todoWalk?Dog/li??
?/ol??
?a?class=createCreate/a??
/div??
给mousover添加一个样式,并新建待办事,您的Controller应当如下:
$.Controller.extend(Todos,{??
??.todo?mouseover?:?function(?el,?ev?)?{??
???el.css(backgroundColor,red)??
??},??
??.todo?mouseout?:?function(?el,?ev?)?{??
???el.css(backgroundColor,)??
??},??
??.cre
您可能关注的文档
- 28天重复经口毒性试验方法(征求意见稿).doc
- 2、4管路中液体的压力损失.ppt
- 2、一元二次方程的一般形式.ppt
- 2、主要技术参数.doc
- 2、牙根拔除的方法.ppt
- 2)连续递增计数模式.ppt
- 2.正中合无早接触,非正中合有早接触的调合原则。.ppt
- 2.理想气体的状态方程.ppt
- 3.1.1方程的根与函数的零点班级_______姓名_______设计人_.doc
- 3.1.6状态空间极点配置控制实验.ppt
- 绿电2022年系列报告之一:业绩利空释放,改革推动业绩反转和确定成长.docx
- 化学化工行业数字化转型ERP项目企业信息化规划实施方案.pdf
- 【研报】三部门绿电交易政策解读:溢价等额冲抵补贴,绿电交易规模有望提升---国海证券.docx
- 中国债券市场的未来.pdf
- 绿电制绿氢:实现“双碳”目标的有力武器-华创证券.docx
- 【深度分析】浅析绿证、配额制和碳交易市场对电力行业影响-长城证券.docx
- 绿电:景气度+集中度+盈利性均提升,资源获取和运营管理是核心壁垒.docx
- 节电产业与绿电应用年度报告(2022年版)摘要版--节能协会.docx
- 2024年中国人工智能系列白皮书-智能系统工程.pdf
- 如何进行行业研究 ——以幼教产业为例.pdf
最近下载
- 建筑安装工程施工图集7,常用仪表工程(建筑 图集).pdf
- 英语考级a级词汇完整版.pdf
- 标准图集-16G101-3混凝土结构施工图平面整体表示方法制图规则和构造详图-独立基础、条形基础、统形基础及桩基承台.pdf VIP
- 仁爱版八年级下册英语Unit-8-Topic-2-完整课件(84页).pptx VIP
- 在安全生产工作会议上的讲话.docx VIP
- 物流行业高效运输管理平台建设方案.doc
- 《园艺疗法》PPT课件(完整版).ppt
- 2.《新人培养核心——主管三陪九辅》2019.04.15..doc
- 北京市2022年中考数学真题(含答案).pdf VIP
- 2022-2023学年高中党史教育学党史 党史故事 专题班会教学课件.pptx VIP
文档评论(0)