jQuery插件学习笔记
近期在研究jQuery插件,插件编写的目的是给已经有的一系列方法或函数做一个封装,以便在其它地方反复使用,方便后期维护。
JQuery除了提供一个简单、有效的方式进行管理元素以及脚本,它还还提供了例外一种机制:即给核心模块添加自己的方法和额外的功能。通过这样的机制,Jquery同意我们自己创建属于我们自己的插件,提高我们在开发过程中的效率。
尽管在jQuery命名空间中,我们禁止使用了大量的javaScript函数名和变量名。可是仍然不可避免某些函数或变量名将于其它jQuery插件冲突。因此我们习惯将一些方法封装到还有一个自己定义的命名空间。
第一个演示样例:
1.插件文件 MyFirstPlugin.js
注:用$.extend()把默认值和用户传进来的值是联合在一起,这样子的话,就把用户自己定义的值覆盖了默认用户的值。假设用户没定义值,就用系统自己定义的。
this.each(function () { 这个前面加了一个 return。这样就实现了我们的链式操作。
(function ($) {
$.fn.textHover = function (options) {
var defaultVal = {
Text: '鼠标悬浮事件',
ForeColor: 'red',
BackColor: '#B9FDD8'
};
//默认值
var obj = $.extend(defaultVal, options);
return this.each(function () {
var selObject = $(this); //获取当前对象
var oldText = selObject.text(); //获取当前对象的Text
var oldBgColor = selObject.css("background-color"); //获取当前对象的背景色
var oldColor = selObject.css("color"); //获取当前对象的字体的颜色
selObject.hover(
function () {
selObject.text(obj.Text); //进行赋值
selObject.css("background-color", obj.BackColor);
selObject.css("color", obj.ForeColor);
},
function () {
selObject.text(oldText);
selObject.css("background-color", oldBgColor);
selObject.css("color", oldColor);
}
);
});
}
})(jQuery);
2.前台HTML代码
<form id="form1" action="#">
<div id="div1" style="width: 400px; height: 150px; background-color: #B9FDD8;">
Hello world</div>
<br />
<div id="div2" class="textBar" style="width: 200px; height: 150px; background-color:#F0FBFF;float:left; border:1px solid gray;">
哈哈 我是第二个 DIV
</div>
<div id="div3" class="textBar" style="width: 200px; height: 150px; background-color:#EDEAFF;float:left; border:1px solid gray; margin-left:2px;">
哈哈 我是第三个 DIV
</div>
</form>
3.JS代码
3.1导入jQuery库文件
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script> <!--jQuery文件必须放在自己定义插件的前面!防止自己定义插件引用对象时报错。-->
<script src="MyScripts/MyFirstPlugin.js" type="text/javascript"></script>
3.2 JS代码
<script type="text/javascript">
$(function () {
$('#div1').textHover({
Text: '鼠标悬浮在第一个 DIV 上面。。。',
ForeColor: 'yellow',
BackColor: 'Red'
});
$('#div2').textHover({ Text: '我是第二个 DIV 。。。' });
$("#div3").textHover({ Text: '我是第三个 DIV 。 。。 ' }).css("background-color", "#B1B0FE"); //初次载入的时候 给出改变其颜色
});
</script>
OK,到这里,一个简单的插件就完毕了。
jQuery插件学习笔记的更多相关文章
- jquery插件 - 学习笔记 (插件参数及函数的调用)
今天研究的是jquery插件的基本写法: 比如我打算写一个名为 ImageZoom 的插件 前台调用: <script src="ImageZoom.js"></ ...
- Jquery插件学习
前端开发也工作了一段时间,Jquery代码页写了很多,但是都是些的很零散的,不是很好用,网上看了很多人写的Jquery 很好用,而且到每个项目中都可以使用, 本人就感觉很好奇他们是怎么做到的呢,于是自 ...
- jQuery源代码学习笔记_工具函数_noop/error/now/trim
jQuery源代码学习笔记_工具函数_noop/error/now/trim jquery提供了一系列的工具函数,用于支持其运行,今天主要分析noop/error/now/trim这4个函数: 1.n ...
- jQuery 基础学习笔记总结(一)
Jquery 学习笔记 总结 感想: 此前在做站点时用到过jquery相关,特别是Ajax相关技术.但是并没有系统的进行学习和了解Jquery的强大的功能,趁这几天跟着资料基本的了解下Jquery的特 ...
- jquery插件学习之元素顶部悬浮
jquery插件的学习: HTML部分及应用 <!DOCTYPE html> <html> <head> <meta charset="utf-8& ...
- jQuery插件学习(一)
由于项目开发需要,经常会用到一些jquery插件,但网上已有的插件常常又不能100%满足业务需求,所以就想自己能看懂插件的代码,进行一些功能上的改动和补充,或者能自己自定义插件就更好了.所以这段时间会 ...
- jQuery的学习笔记4
JQuery学习笔记3 2.9属性选择器 属性选择器就是根据元素的属性和属性值作为过滤条件,来匹配对应的DOM元素.属性选择器一般都以中括号作为起止分界符 它的形式如下: [attribute] [a ...
- jQuery的学习笔记2
jQuery学习笔记 Day two Chapter two 选择器 类选择器 语法结构:$(“.classname”) javascript里面没有类选择器所以这个时候使用jQuery会更加的简便 ...
- jQuery的学习笔记
JQuery学习笔记 Chapter one初识jQuery 1.2测试jQuery 在jQuery库中,$是jQuery的别名,如:$()相当于jQuery() 注意:在使用JQuery进行开发的时 ...
随机推荐
- Geeks - Check whether a given graph is Bipartite or not 二分图检查
检查一个图是否是二分图的算法 使用的是宽度搜索: 1 初始化一个颜色记录数组 2 利用queue宽度遍历图 3 从随意源点出发.染色0. 或1 4 遍历这点的邻接点.假设没有染色就染色与这个源点相反的 ...
- Linux115条常用命令
1,echo “aa” > test.txt 和 echo “bb” >> test.txt //>将原文件清空,并且内容写入到文件中,>>将内容放到文件的尾部2, ...
- 【Linux】debian jessie版本安装1.9 svn
今天封装使用官方mysql docker镜像时,发现svn版本有问题.需要更新到1.9版本.方法如下. Subversion 1.9 on Debian Jessie November 4, 2015 ...
- .NET-DataColumn.DataType 属性
public DataTable MakeDataTable(){ DataTable myTable; DataRow myNewRow; // Create a new DataTable. my ...
- 手写Json转换
在做项目的时候总是要手动将集合转换成json每次都很麻烦,于是就尝试着写了一个公用的方法,用于转换List to json: using System; using System.Collection ...
- atitit.微信支付的教程文档 attilax总结
atitit.微信支付的教程文档 attilax总结 1. 支付流程概览 1 2. 设置支付起始文件夹 host/app/paydir/ 1 3. 设置oauth验证域名 1 4. 測试文件夹 能 ...
- Unity3d_ADBannerView
原地址:http://blog.csdn.net/cynixway/article/details/7686393 ADBnnerView提供对Apple iAd框架中ADBannerView的包中, ...
- 【服务器时间修改为东八区】包括Apache2和mysql
1.服务器Apache时间修改,可通过修改php.ini进行修改 所以就深入了解了一下, 发现Apache(PHP)的服务器时间时区默认为UTC(Coordinated UniversalTime 世 ...
- Timer使用
1. Timer简介 Timer是jdk中提供的一个定时器工具,使用的时候会在主线程之外起一个单独的线程执行指定的计划任务,可以指定执行一次或者反复执行多次. 通过创建Timer对象,然后调用Time ...
- Java包装类的常量池
Integer a=Integer.valueOf(100); Integer b=Integer.valueOf(100); System.out.println(a==b); Double d1 ...