近期在研究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插件学习笔记的更多相关文章

  1. jquery插件 - 学习笔记 (插件参数及函数的调用)

    今天研究的是jquery插件的基本写法: 比如我打算写一个名为 ImageZoom 的插件 前台调用: <script src="ImageZoom.js"></ ...

  2. Jquery插件学习

    前端开发也工作了一段时间,Jquery代码页写了很多,但是都是些的很零散的,不是很好用,网上看了很多人写的Jquery 很好用,而且到每个项目中都可以使用, 本人就感觉很好奇他们是怎么做到的呢,于是自 ...

  3. jQuery源代码学习笔记_工具函数_noop/error/now/trim

    jQuery源代码学习笔记_工具函数_noop/error/now/trim jquery提供了一系列的工具函数,用于支持其运行,今天主要分析noop/error/now/trim这4个函数: 1.n ...

  4. jQuery 基础学习笔记总结(一)

    Jquery 学习笔记 总结 感想: 此前在做站点时用到过jquery相关,特别是Ajax相关技术.但是并没有系统的进行学习和了解Jquery的强大的功能,趁这几天跟着资料基本的了解下Jquery的特 ...

  5. jquery插件学习之元素顶部悬浮

    jquery插件的学习: HTML部分及应用 <!DOCTYPE html> <html> <head> <meta charset="utf-8& ...

  6. jQuery插件学习(一)

    由于项目开发需要,经常会用到一些jquery插件,但网上已有的插件常常又不能100%满足业务需求,所以就想自己能看懂插件的代码,进行一些功能上的改动和补充,或者能自己自定义插件就更好了.所以这段时间会 ...

  7. jQuery的学习笔记4

    JQuery学习笔记3 2.9属性选择器 属性选择器就是根据元素的属性和属性值作为过滤条件,来匹配对应的DOM元素.属性选择器一般都以中括号作为起止分界符 它的形式如下: [attribute] [a ...

  8. jQuery的学习笔记2

    jQuery学习笔记 Day two Chapter two 选择器 类选择器 语法结构:$(“.classname”) javascript里面没有类选择器所以这个时候使用jQuery会更加的简便 ...

  9. jQuery的学习笔记

    JQuery学习笔记 Chapter one初识jQuery 1.2测试jQuery 在jQuery库中,$是jQuery的别名,如:$()相当于jQuery() 注意:在使用JQuery进行开发的时 ...

随机推荐

  1. netmap -- ixgbe

    利用netmap抓ixgbe网卡上的以太网帧,跟e1000e网卡有区别. 使用e1000.e1000e网卡发以太网帧只要以太网帧的格式正确就可以了.只要格式和 目的MAC.源MAC地址正确,网卡就可以 ...

  2. web页面实时更新页面的原理--WebSocket

    原文:https://www.jianshu.com/p/8f956cd4d42b angular-cli启动的项目也可以自动刷新,底下应该也是应用的websocket的原理. ----------- ...

  3. php.in

    [PHP] ;;;;;;;;;;; ; WARNING ; ;;;;;;;;;;; ; This is the default settings file for new PHP installati ...

  4. 向大家推荐两个灰常好用的插件LigerUI和报表控件highcharts

    废话不多说上一张图看看,向大家推荐两个灰常好用的插件LigerUI和报表控件highcharts.欢迎大家进技术群讨论:QQ群:15129679 http://ligerui.com/和http:// ...

  5. EffectiveJava(26)使用泛型类替代普通类

    使用泛型编写类比使用需要在客户端代码中进行转换的类型更加安全,并且对去其他程序员来说更加容易扩展,我们应该将可以用泛型代替的非泛型类优化 那么,如何将类泛型化呢? 这很简单.首先,给他的声明添加一个或 ...

  6. Solidworks如何等比例缩小放大模型

    比如初始化的模型,笔记本长度只有120mm,实际上应该是3倍左右   右击特征,勾选模具工具,然后可以发现多出来一个页面   点击比例缩放,选中要缩放的特征,设置比例,然后打钩   可以发现已经缩放到 ...

  7. PHP面向对象之接口 (interface)

    1.使用接口,接口中指定了某个类必须实现的某些方法,这些方法都是空的(不需要定义这些方法的具体内容) 2. 要实现一个接口用关键字implements,类中必须包含接口中所有的方法,否则会出现一个致命 ...

  8. java 内部类、匿名内部类、嵌套类的使用

    我们都知道java的类能够由public.default(缺省.不写)来修饰,分别表示的含义是同意公开訪问以及仅仅同意包内其他类訪问,而同一包内的类一般是为完毕同一个功能而协作.      除此之外, ...

  9. [leetcode]Path Sum--巧用递归

    题目: Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up ...

  10. javascript-使用el表达式获取后台传递的数据

      js获取后台数据 CreateTime--2017年5月26日16:14:14Author:Marydon 在js中使用el表达式的前提是:HTML引用js使用内联方式(即在JSP页面内部使用js ...