- 浏览: 161338 次
- 性别:
- 来自: 重庆
-
文章分类
最新评论
-
坏猪猪:
Document doc = Jsoup.connect(ur ...
android中jsoup解析html的几个例子 -
我很温柔但是不丑:
你好。看了您的例子,实践了一下,有问题啊?没有解析出来数据?怎 ...
android中jsoup解析html的几个例子
插件让你可以无侵入地为宿主对象(host object)添加功能。宿主衍生自Base类。node、widget等对象都是宿主对象。我们可以继承Plugin.Base类创建插件类。但是这也不是必须的,可以通过其他方法创建插件类。
插件类用来向组件实例中添加小块功/特性,不需要将这些功能/特性整合进组件类中,组件类甚至可以完全对这些功能特性一无所知。这样,我们就可以在组件实例层级使用这些功能/特性,避免为实现某些功能特性而把而组件类构建得很大,或者为了实现不同的功能组合构建多个不同的组件类。
引入YUI种子文件和配置YUI实例就不累述了,详见 YUI 3: YUI 全局对象。
以下内容是关于如何创建和使用插件类的,包含如下部分: 对于简单的插件类,如果它们没有自己的事件和属性,不通过监听宿主对象的事件来修改宿主对象的默认行为,不重写宿主对象的方法的话,插件类可以只是简单的原生javascript类。 插件类唯一必须的是一个用作名字空间的静态属性“NS”。该静态属性的值用作从宿主实例上访问插件实例。也就是说,一旦插件被 “插到”宿主实例上后,可以通过hostObj.namespace得到plugin实例的引用。 当插件被“插到”一个宿主实例上后,插件的实例被创建,一个对宿主实例的引用被添加到传入插件构造器的配置对象上。这样,插件实例可以引用宿主实例。(当一个插件被从宿主实例上“拔出”后,该插件实例被销毁。) 下面代码展示在Node对象上插入“AnchorPlugin”插件:
通过NS属性的值,可以在Node实例上访问到插件实例:
上述的简单插件类能满足简单功能/特性。但是,当你想在插件类中封装更复杂的功能/特性时,对attributes和events的支持就派上用场了。对于许多插件而言,你将需要改变宿主实例的默认行为(比如:一个Animation 插件可能需要改变widget类的默认show/hide行为)。 对于这样功能复杂的插件,你应该通过扩展Plugin.Base类来构建它。 插件类是Base的子类,因此,它也支持attribute、生命周期方法、自定义事件。另外,我们还可以在插件类中监听响应宿主实例触发的事件,或者在宿主实例某方法执行之前,注入插件自定义的逻辑代码(基于YUI3的AOP基础结构)。Plugin.Base类还在它的“host”属性中存放对宿主实例的引用,可以在插件实现中通过this.get(“host”)访问到宿主实例。 你可以像扩展Base类一样扩展Plugin.Base类。需要注意的是扩展Plugin.Base类时,宿主实例被自动设置为插件类的“host”属性的值。而在简单的插件类中需要手动地通过构造器的配置对象把宿主实例设置成插件类的属性值,这样才能在插件类中访问到宿主实例。 高级插件类的结构和其他扩展自Base类的类是一样的。只是多了一个NS静态属性。 (see the Basedocumentation for details about NAME and ATTRS).
扩展Plugin.Base类最大的好处就是可以通过Plugin.Base类提供的onHostEvent和afterHostEvent方法来监听宿主实例触发的事件,还可以通过beforeHostMethod和afterHostMethod方法来改变宿主实例的方法。 通过以上由Plugin.Base类提供的方法来改变宿主实例的默认方法,而不是通过修改宿主类来改变宿主实例的默认方法的好处是:通过“插入”方式做了修改的方法在“拔出”以后,会被还原。这很重要,插件被从宿主实例身上“拔出”后,应该被完全地销毁。 正如上述所说,衍生自Plugin.Base类的插件类,可以监听并响应宿主实例触发的事件。 比如,当wideget被渲染的时候,他们都会触发“render”事件。你的插件类可能需要知道这个“render”事件是什么时候发生的,这样它才可以在宿主实例渲染的HTML代码中插入一些自定义的HTML代码。可以使用afterHostEvent方法实现:
创建插件
简单的插件
以下是一个简单的插件类://这个AnchorPlugin插件被设计成Node实例的插件 (宿主是Node实例)
function AnchorPlugin(config) {
// 存放宿主实例(Node实例)的引用,以便插件的方法使用。
this._node = config.host;
}
// 被-插入Node实例后,在Node实例的"anchors"属性上能访问到插件
AnchorPlugin.NS = "anchors"
AnchorPlugin.prototype = {
disable: function() {
var node = this._node;
var anchors = node.queryAll("a");
anchors.addClass("disabled");
anchors.setAttribute("disabled", true);
}
};
var container = Y.one("div.actions");
container.plug(AnchorPlugin);
container.anchor.disable();
高级插件类
扩展Plugin.Base
// A plugin class designed to animate Widget's show and hide methods.
function WidgetAnimPlugin(config) {
WidgetAnimPlugin.superclass.constructor.apply(this, arguments);
}
// Define Static properties NAME (to identify the class) and NS (to identify the namespace)
WidgetAnimPlugin.NAME = 'widgetAnimPlugin';
WidgetAnimPlugin.NS = 'fx';
// Attribute definitions for the plugin
WidgetAnimPlugin.ATTRS = {
animHidden : {
...
},
animVisible: {
...
}
};
// Extend Plugin.Base
Y.extend(WidgetAnimPlugin, Y.Plugin.Base, {
// Add any required prototype methods
});
Plugin的监听器
事件
// 一个插件类,设计成将widget的show/hide方法改成动画。
function WidgetAnimPlugin(config) {
//...
}
WidgetAnimPlugin.NAME = 'widgetAnimPlugin';
WidgetAnimPlugin.NS = 'fx';
WidgetAnimPlugin.ATTRS = {
animHidden : {
//...
},
animVisible: {
//...
}
};
// 扩展Plugin.Base,重载默认方法_uiSetVisible。该方法原被用作改变显示状态。
Y.extend(WidgetAnimPlugin, Y.Plugin.Base, {
initializer : function(config) {
// 用自定义动画方法重载Widget的_uiSetVisible方法。
this.beforeHostMethod("_uiSetVisible", this._uiAnimSetVisible);
},
_uiAnimSetVisible : function(show) {
// hide/show.用为插件配置好的动画实例,把show/hide方法改成动画,替换原来改变显示状态的方式。
if (this.get("host").get("rendered")) {
if (show) {
this.get("animHidden").stop();
this.get("animVisible").run();
} else {
this.get("animVisible").stop();
this.get("animHidden").run();
}
// 阻止默认方法执行。
return new Y.Do.Prevent();
}
}
});
发表评论
-
yui3:widget 例子_widget-extend
2011-06-26 16:07 2611<!DOCTYPE HTML PUBLIC &qu ... -
yui3:widget
2011-06-18 11:36 3290Widget 类包含什么? widget类的结构和 ... -
YUI3:node2
2011-06-18 11:23 1YUI的Node功能为获取、 ... -
YUI3:Base
2011-06-16 20:39 1599Base类被设计成基础类 ... -
YUI3:Attribute
2011-06-16 10:30 1559YUI的Attribute功能允 ... -
YUI 3:Event
2011-06-15 22:23 15681. 要使用Event,首先要引入YUI3的种子文件: &l ... -
YUI3:Node
2011-06-15 15:59 2255YUI的Node功能为获取、创建、操作DOM节点提供很易懂的方 ... -
yui3 :Get 例子
2011-06-15 15:43 1357Getting a Script Node with JSON ... -
YUI:globle object
2011-06-13 11:52 1685YUI模块是YUI3中的单一核 ... -
YUI3:GET
2011-06-12 22:25 1729Get 工具提供了一个,在 ... -
YUI3:DataSource
2011-06-12 21:53 1364DataSource 工具,通过广泛支持的协议,为从不同的资源 ... -
YUI3:DataSchema
2011-06-12 20:57 939DataSchema Utility 应用一个给定的模式 ,以 ... -
YUI3:Cooke
2011-06-12 16:43 1294YUI Cookie工具为与cookies ... -
yui3 :datatype
2011-06-12 12:02 2162DataType工具为数据, ... -
YUI3:cache
2011-06-12 10:14 1290Cache 工具为存储名值对到本地JavaScript内存提供 ... -
YUI 3 周边
2011-06-11 16:46 11681.跨域请求:cross-domain 初步体验“AJAX不 ... -
YUI 3 :IO
2011-06-10 11:46 2979YUI IO是一个通讯工具,用于数据获取和内容更新,它使用X ... -
YUI 3 : json
2011-06-09 15:37 2676JSON (JavaScript Object ...
相关推荐
Rocky Linux 8.10内核包
内容概要:本文档详细介绍了如何在Simulink中设计一个满足特定规格的音频带ADC(模数转换器)。首先选择了三阶单环多位量化Σ-Δ调制器作为设计方案,因为这种结构能在音频带宽内提供高噪声整形效果,并且多位量化可以降低量化噪声。接着,文档展示了具体的Simulink建模步骤,包括创建模型、添加各个组件如积分器、量化器、DAC反馈以及连接它们。此外,还进行了参数设计与计算,特别是过采样率和信噪比的估算,并引入了动态元件匹配技术来减少DAC的非线性误差。性能验证部分则通过理想和非理想的仿真实验评估了系统的稳定性和各项指标,最终证明所设计的ADC能够达到预期的技术标准。 适用人群:电子工程专业学生、从事数据转换器研究或开发的技术人员。 使用场景及目标:适用于希望深入了解Σ-Δ调制器的工作原理及其在音频带ADC应用中的具体实现方法的人群。目标是掌握如何利用MATLAB/Simulink工具进行复杂电路的设计与仿真。 其他说明:文中提供了详细的Matlab代码片段用于指导读者完成整个设计流程,同时附带了一些辅助函数帮助分析仿真结果。
内容概要:该题库专为研究生入学考试计算机组成原理科目设计,涵盖名校考研真题、经典教材课后习题、章节题库和模拟试题四大核心模块。名校考研真题精选多所知名高校的计算机组成原理科目及计算机联考真题,并提供详尽解析,帮助考生把握考研命题趋势与难度。经典教材课后习题包括白中英《计算机组成原理》(第5版)和唐朔飞《计算机组成原理》(第2版)的全部课后习题解答,这两部教材被众多名校列为考研指定参考书目。章节题库精选代表性考题,注重基础知识与重难点内容,帮助考生全面掌握考试大纲要求的知识点。模拟试题依据历年考研真题命题规律和热门考点,精心编制两套全真模拟试题,并附标准答案,帮助考生检验学习成果,评估应试能力。 适用人群:计划参加研究生入学考试并报考计算机组成原理科目的考生,尤其是需要系统复习和强化训练的学生。 使用场景及目标:①通过研读名校考研真题,考生可以准确把握考研命题趋势与难度,有效评估复习成效;②通过经典教材课后习题的练习,考生可以巩固基础知识,掌握解题技巧;③通过章节题库的系统练习,考生可以全面掌握考试大纲要求的各个知识点,为备考打下坚实基础;④通过模拟试题的测试,考生可以检验学习成果,评估应试能力,为正式考试做好充分准备。 其他说明:该题库不仅提供详细的题目解析,还涵盖了计算机组成原理的各个方面,包括计算机系统概述、数据表示与运算、存储器分层、指令系统、中央处理器、总线系统和输入输出系统等。考生在使用过程中应结合理论学习与实践操作,注重理解与应用,以提高应试能力和专业知识水平。
__UNI__DB9970A__20250328141034.apk.1
rust for minio
国网台区终端最新规范
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
一个简单的机器学习代码示例,使用的是经典的鸢尾花(Iris)数据集,通过 Scikit-learn 库实现了一个简单的分类模型。这个代码可以帮助你入门机器学习中的分类任务。
pyqt离线包,pyqt-tools离线包
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
SQL常用日期和时间函数整理及在sqlserver测试示例 主要包括 1.查询当前日期GETDATE 2.日期时间加减函数DATEADD 3 返回两个日期中指定的日期部分之间的差值DATEDIFF 4.日期格式转换CONVERT(VARCHAR(10),GETDATE(),120) 5.返回指定日期的年份数值 6.返回指定日期的月份数值 7.返回指定日期的天数数值
GSDML-V2.3-Turck-BL20_E_GW_EN-20160524-010300.xml
T_CPCIF 0225-2022 多聚甲醛.docx
《基于YOLOv8的智能仓储货物堆码倾斜预警系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计
蚕豆脱壳机设计.zip
台区终端电科院送检文档
Y6一39一No23.6D离心通风机 CAD().zip
django自建博客app
台区终端电科院送检文档
非开挖水平定向钻机动力头装置设计.zip