摘要: 插件编写的目的是给已经有的一系列方法或函数做一个封装,以便在其他地方重复使用,方便后期维护
插件编写的目的是给已经有的一系列方法或函数做一个封装,以便在其他地方重复使用,方便后期维护
jQuery插件开发方式
通过$.extend()来扩展jQuery
通过$.fn 向jQuery添加新的方法
通过$.widget()应用jQuery UI的部件工厂方式创建
三种jQuery插件开发方式说明
$.extend()相对简单,一般很少能够独立开发复杂插件,仅仅是在jQuery命名空间或者理解成jQuery身上添加了一个静态方法而以
我们调用通过$.extend()添加的函数时直接通过$符号调用($.myfunction()),而不需要选中DOM元素($('#example').myfunction())
$.widget()是一种高级的开发模式,该模式开发出来的部件带有很多jQuery内建的特性,比如插件的状态信息自动保存,各种关于插件的常用方法等
$.fn则是一般插件开发用到的方式,可以利用jQuery强大的选择器带来的便利,以及将插件更好地运用于所选择的元素身上,使用的插件也大多是通过此种方式开发
$.extend()扩展jQuery的实例
$.extend({
sayHello: function(name) {
console.log('Hello,' + (name ? name : 'aaa') + '!');
}
})
$.sayHello(); //Hello,aaa
$.sayHello('bbb'); //Hello,bbb
说明:上面代码中,通过$.extend()向jQuery添加了一个sayHello函数,然后通过$直接调用
$.fn方式插件开发
定义
$.fn.pluginName = function() {
//your code here
}
定义说明
基本上就是往$.fn上面添加一个方法,名字是我们的插件名称。然后我们的插件代码在这个方法里面展开
简单实例
将页面上所有链接颜色转成红色,则可以这样写这个插件
$.fn.myPlugin = function() {
//在这里面,this指的是用jQuery选中的元素 example :$('a'),则this=$('a')
this.css('color', 'red');
}
实例说明
1、在插件名字定义的这个函数内部,this指代的是我们在调用该插件时,用jQuery选择器选中的元素,一般是一个jQuery类型的集合。在插件名字定义的这个函数内部,this指代的是我们在调用该插件时,用jQuery选择器选中的元素,一般是一个jQuery类型的集合
2、如果通过调用jQuery的.each()方法处理集合中的每个元素时要注意的是,在each方法内部,this指带的是普通的DOM元素了,如果需要调用jQuery的方法那就需要用$来重新包装一下
$.fn.myPlugin = function() {
this.css('color', 'red'); //在这里面,this指的是用jQuery选中的元素
this.each(function() {
$(this).append(' ' + $(this).attr('href')); //对每个元素进行操作
}))
}
实例插件的使用
<ul>
<li> <a href="#">aaa</a> </li>
<li> <a href="#">bbb</a> </li>
<li> <a href="#">ccc</a> </li>
</ul>
<p>这是p标签不是a标签,我不会受影响</p>
<script type="text/javascript">
$(function(){
$('a').myPlugin();
})
</script>
让插件支持链式调用
jQuery一个时常优雅的特性是支持链式调用,选择好DOM元素后可以不断地调用其他方法。要让插件不打破这种链式调用,只需return一下即可
$.fn.myPlugin = function() {
this.css('color', 'red'); //在这里面,this指的是用jQuery选中的元素
return this.each(function() {
$(this).append(' ' + $(this).attr('href')); //对每个元素进行操作
}))
}
让插件接收参数
1、一个强劲的插件是可以让使用者随意定制的,这要求我们提供在编写插件时就要考虑得全面些,尽量提供合适的参数
2、比如现在我们不想让链接只变成红色,我们让插件的使用者自己定义显示什么颜色,要做到这一点很方便,只需要使用者在调用的时候传入一个参数即可。同时我们在插件的代码里面接收
3、为了灵活,使用者可以不传递参数,插件里面会给出参数的默认值
4、在处理插件参数的接收上,通常使用jQuery的extend方法,当给extend方法传递一个以上的参数时,它会将所有参数对象合并到第一个里。同时,如果对象中有同名属性时,合并的时候后面的会覆盖前面的。
5、可以在插件里定义一个保存插件参数默认值的对象,同时将接收来的参数对象合并到默认对象上,最后就实现了用户指定了值的参数使用指定的值,未指定的参数使用插件默认值
6、保护好默认参数:做法是将一个新的空对象做为$.extend的第一个参数,defaults和用户传递的参数对象紧随其后,这样做的好处是所有值被合并到这个空对象上,保护了插件里面的默认值
[url] http://click.aliyun.com/m/23440/[/url]
分享到:
相关推荐
时间序列数据在进行索引和比较前,通常需要进行标准化处理,以消除不同序列间量纲和范围的影响。正态分布假设下,时间序列经过标准化后,其值服从正态分布,这有助于后续的相似性计算和索引构建。 ### SAX—符号...
总结,DTW算法是一种强大的工具,尤其在处理非同步时间序列数据时,能够提供更为精确的相似度测量。通过MATLAB这一强大平台,我们可以轻松实现DTW算法,并将其应用于各种实际问题,提升数据分析的精度和洞察力。
云计算是一种基于网络,利用互联网的共享资源和软件服务的计算方式,它可以提供弹性的、可扩展的计算服务。随着技术的发展,云计算在计算机网络安全存储中的应用越来越广泛,然而,随之而来的安全存储问题也备受关注...
1. 数据量大:时间序列数据通常包含大量的数据点,对存储和计算能力提出了较高要求。 2. 数据维度高:时间序列可能不仅仅包含单一维度的数据,可能有多重变量同时记录。 3. 应用领域广泛:由于应用背景的多样性,...
#### 一、数据存储与恢复技术概述 数据存储与恢复技术是计算机科学中的一个重要分支,它涉及到如何高效、安全地存储数据以及在数据丢失或损坏时如何进行恢复的技术。这些技术对于保护重要信息、确保业务连续性和灾难...
- 反映历史变化:数据仓库包含历史数据记录,支持时间序列分析。 #### 1.2 数据仓库与传统数据库的区别 - **数据组织方式**:数据仓库强调主题组织,而传统数据库强调事务处理。 - **数据特性**:数据仓库中的数据...
通过对序列进行逐步分割和评估,该算法能够识别出有意义的分割点,从而帮助用户更好地理解和分析复杂的时间序列数据。通过对该算法的深入理解,我们可以更准确地识别出时间序列中的重要变化点,为进一步的数据分析...
此技术白皮书详细介绍了TSDB的产品特性和功能,旨在帮助用户理解如何利用该数据库高效地管理和分析时间序列数据。 1. **产品概述** TSDB是针对物联网(IoT)、监控系统、金融交易等领域大量时间戳相关的数据存储和...
这些文件提供了一个详细的时间序列数据,反映了越南各地区在2000年至2019年间的年人口数量和分布情况。这个数据集对于了解越南的人口动态、城市化进程、区域发展以及政策规划等具有重要价值。 1. 数据集概述: - ...
本文将概述计算机系统的基本组成部分,包括信息类型、编译过程、处理器工作原理、程序运行、缓存机制、存储设备层次结构以及操作系统的关键功能。 首先,计算机系统中的信息主要分为文本文件和二进制文件。文本文件...
综上,这个项目旨在通过结合eBPF的高效数据收集能力和时间序列模型的智能分析,建立一个能实时监测并预警操作系统异常状况的系统。对于计算机专业的学生来说,这既是一次深入理解内核技术的实践,也是对数据分析和...
数据结构是指计算机中组织和存储数据的方式,它不仅包括数据的逻辑结构,还包括数据的物理结构以及对数据的操作。数据结构的选择直接影响到算法的效率,因此在设计算法时,选择合适的数据结构至关重要。 ### 线性表...
数据和指令都存储在内存中,控制器按照存储的指令序列执行操作。 3. **计算机系统的层次结构**:计算机系统从低到高可以分为硬件、固件、操作系统、系统调用库、编程语言和应用程序等层次,每个层次对上一层提供...
时间序列数据挖掘涉及的关键概念包括距离度量、数据索引、查询内容、序列匹配、相似度量、流分析和时间分析。距离度量用于比较两个时间序列之间的相似性;数据索引旨在有效地从大量时间序列中检索所需数据;查询内容...
1. **气候变化研究**:通过对长时间序列的数据分析,可以揭示气候变化的趋势和发展模式,为预测未来的气候变化提供科学依据。 2. **气候模型验证**:实际观测数据是验证气候模型准确性的重要工具。这些数据可以帮助...
- 存储容量大:能存储海量的数据和程序。 - 精度高:能进行高精度的数值计算。 - 逻辑判断能力强:能够处理逻辑和条件判断。 - 自动化程度高:能自动执行预设的指令序列。 计算机通常按功能和规模分类,如巨型机、...
- **内容简介**:时间序列分析在金融、经济等领域尤为重要,本章专门讨论了时间序列数据的处理和分析。 - **核心知识点**: - 时间序列数据的基本概念 - 时间序列数据的处理 - 季节性调整 - 平稳性和非平稳性...
本实验不仅展示了如何利用MATLAB实现通过一次N点DFT同时计算两个N点实序列的DFT,还证明了这种方法的有效性和准确性。此外,相比于直接使用两次DFT计算两个实序列的情况,这种方法可以节省计算资源,尤其是存储器...