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进行开发的时 ...
随机推荐
- java匿名内部类之RocketMQ中的应用
匿名内部类在spring中没怎么见用,在RocketMQ中有大量的应用. 确实可以提高开发效率.这可能代表两种写代码的态度吧. 匿名内部类简单来说就是直接在函数中实现接口方法,不需要声明一个接口实现类 ...
- EAS常用工具类
package com.kingdee.eas.custom; import java.io.File; import java.io.FileNotFoundException; import ja ...
- Android Exception 13(Can't create handler inside thread that has not called Looper.prepare())
10-12 17:02:55.500: E/AndroidRuntime(28343): FATAL EXCEPTION: Timer-2 10-12 17:02:55.500: E/AndroidR ...
- STL源码剖析(算法)
STL中算法是基于迭代器来实现的. 有了容器中迭代器的实现(对operator*.operator++等的重载),STL中大部分算法实现就显得很简单了. 先看一例关于find算法的实现: templa ...
- JDBC数据库编程:PreparedStatement接口
使用PreparedStatement进行数据库的更新及查询操作. PreparedStatement PreparedStatement是statement子接口.属于预处理. 使用statemen ...
- struts action不在是一个单例类
在servlet中,servlet类是一个单例,在servlet中的成员变量,将会被所有请求共享,同时也有可能存在线程安全问题,如有一个成员变量num,每次方法后市的num自增 package act ...
- X86服务器、小型机、大型机、塔式、机架式、刀片式服务器、工作站
ü 服务器分:x86(PC)服务器,小型机(Unix服务器),大型机: pc服务器则主要指基于intel处理器的x86架构,是一个通用开放的系统. UNIX服务器,也就是中国业内习惯上说的小型机,在 ...
- 萌新学习Python爬取B站弹幕+R语言分词demo说明
代码地址如下:http://www.demodashi.com/demo/11578.html 一.写在前面 之前在简书首页看到了Python爬虫的介绍,于是就想着爬取B站弹幕并绘制词云,因此有了这样 ...
- Idea golang "can’t find import" 解决方法
如题,在使用leveldb go wrapper levigo 的时候,本地安装好levigo后,通过命令行编译代码正常并能work,但在Idea中使用时出现: can't find import & ...
- unity3d通过代码动态创建销毁游戏对象
只能动态创建内部提供的游戏对象,代码如下: //按下C后创建 if (Input.GetKeyDown (KeyCode.C)) { GameObject s1 = GameObject.Create ...