jquery插件制作教程 txtHover_jquery

定义插件的结构骨架:
  书中最开始使用的结构骨架如下:

复制代码 代码如下:

jQuery.fn.fluginmane=function(){
  return this.each(function(){
    //code...
  })
}  

这种结构不是很理想,特别书中提到,为了防止冲突例子不使用$,而使用jQuery。在这里,我们使用匿名函数的方式实现插件的结构骨架,这样就可以防止可能的冲突。也希望大家好好了解下匿名函数相关的知识。

复制代码 代码如下:

(function($){
  $.fn.fluginname=function(){
    return this.each(function(){
      //code...
    });
  }
})(jQuery);

注意点:
  1.为了统一和规范,我们的插件文件都将以jquery.fluginname.js的形式命名(fluginname代表你插件的名字)。
  2.我们使用到的函数都需要是私有的,不能被外部访问到,这样可保证插件不会受到外部的影响和干扰(匿名函数已经保证了这点)。
  3.允许用户使用options控制插件的行为。
  4.默认的options允许外部访问,这样用户就可以用最少的代码实现自定义化。
  5.this.each()会遍历所有符合要求的对象,他本身是个jquery对象,插件最后返回该对象。其实通过这种方式就实现了javascript的链式模式。
我们的第一个插件:txtHover
  1.代码实现:

复制代码 代码如下:

(function($){
  $.fn.txtHover=function(){
    return this.each(function(){
      $(this).text('text changed!');
    });
  }
})(jQuery);

2.如何使用:
  创建一个html文件,添加jquery和插件的引用,代码如下:

复制代码 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script>
<script type="text/javascript" src="Scripts/jquery.txtHover.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#test').txtHover();
});
</script>
</head>
<body>
<div id="test">
this is test.</div>
</body>
</html>

添加hover事件:

复制代码 代码如下:

(function ($) {
$.fn.txtHover = function () {
return this.each(function () {
var temp = $(this).text();
$(this).hover(function () {
$(this).text('text changed!');
}, function () {
$(this).text(temp);
});
});
}
})(jQuery);  

第一个版本,当页面加载完毕之后,div的内容就被修改了,这样的设计没多大用处。我们最常用到的是,当鼠标移到到文字上面的时候产生一些变化。改进的插件添加了hover事件。首先我们把div的原始值保存在变量temp里面,当鼠标移动到div上面的时候,文字被替换,鼠标移出时,将文字替换回来。
添加自定义选项
  为了方便用户更加灵活的使用,我们需要添加自定义的功能,插件代码修改:

复制代码 代码如下:

(function ($) {
$.fn.txtHover = function (options) {
var defaults = { txt: 'text changed!' };
var opt = $.extend(defaults, options);
return this.each(function () {
var self = $(this);
var temp = self.text();
self.hover(function () {
self.text(opt.txt);
}, function () {
self.text(temp);
});
});
}
})(jQuery);  

插件定义了一个变量defaults,设置了默认的文字信息。我们使用$.extend()(不了解这个函数的朋友可以去查阅资料)方法扩展了一个新变量opt,如果用户传入的options变量包含txt,则opt就使用用户传入的,否则就使用系统默认的。我们在系统中定义了 var self = $(this),来代替this对象。this在javascript中是个很恼人的对象,在不同函数上下文中所代表的对象会不同,将this传给一个另外的变量会避免程序出现一些错误。不熟悉的朋友很有必要好好掌握该知识点。
  用户在html页面上调用插件的时候,可以自定义鼠标移到div上面时候的文字内容了。
$(document).ready(function () {
  $('#test').txtHover({ txt: 'test' });
});  好了,今天的例子到此为止。

时间: 2024-10-26 09:37:56

jquery插件制作教程 txtHover_jquery的相关文章

jquery插件制作教程 txtHover(转载)

http://www.jb51.net/article/31082.htm 该系列文章是我阅读<jQuery Plugin Development Beginner's Guide>后的总结,有兴趣的朋友可以去读原版的书籍   定义插件的结构骨架:  书中最开始使用的结构骨架如下:  复制代码代码如下: jQuery.fn.fluginmane=function(){  return this.each(function(){  //code...  }) }   这种结构不是很理想,特别书中

JQuery 插件制作实践 xMarquee插件V1.0

JQuery 插件制作实践 xMarquee插件V1.0 1,向左或者右移动列表中的元素.(注,上下方向也一样的,用css教程控制列表元素float的方向即可-) 2,鼠标移动到某个元素上时,改元素突出显示(css控制),播放器停止滚动.移开后继续跑马.. 3,可选左右手工导航按钮.   实现原理 移动列表末尾元素到第一个元素前面即可. 将来的扩展(以后用到的话再看吧) 多个元素同时移动:移动时的效果:移动后的回调函数:(注:利用移动后的回调函数可以方便做一个相册插件,有兴趣的自己写下).做开发

jQuery插件制作之全局函数用法实例

  本文实例讲述了jQuery插件制作之全局函数用法.分享给大家供大家参考.具体分析如下: 1.添加新的全局函数 所谓的全局函数,实际上就是jQuery对象的方法,但从实践的角度上看,他们是位于jQuery命名空间内部的函数 (1)添加一个函数,只需要将新函数指定为jQuery对象的一个属性. ? 1 2 3 jQuery.five =function(){ alert("直接继承方式不一样"); } 调用: 代码如下: $.five(); (2)添加多个函数 ? 1 2 3 4 5

jQuery插件制作之参数用法实例分析

  本文实例讲述了jQuery插件制作之参数用法.分享给大家供大家参考.具体分析如下: 1.无参数实现文字阴影效果 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 jQuery.fn.shadow =function(){ return this.each(function(){ var $originalElement = jQuery(this); for(var i = 0;i < 5;i++){ $originalElement.clone() .

分享10篇优秀的jQuery幻灯片制作教程及应用案例_jquery

幻灯片效果是常用的内容展示方式之一,这是一种在有限的网页空间内展示系列项目时非常好的方法.今天要给大家分享的是10篇非常棒的 jQuery 幻灯片教程及16个优秀的 jQuery 幻灯片应用案例. 10篇 jQuery 幻灯片制作教程Create Beautiful jQuery slider tutorial jQuery Plugin – Feature List Create an Image Rotator with Description (CSS/jQuery) Moving Box

jQuery插件制作之参数用法实例分析_jquery

本文实例讲述了jQuery插件制作之参数用法.分享给大家供大家参考.具体分析如下: 1.无参数实现文字阴影效果 jQuery.fn.shadow =function(){ return this.each(function(){ var $originalElement = jQuery(this); for(var i = 0;i < 5;i++){ $originalElement.clone() .css({ position :"absolute", left :$ori

jQuery插件制作之全局函数用法实例_jquery

本文实例讲述了jQuery插件制作之全局函数用法.分享给大家供大家参考.具体分析如下: 1.添加新的全局函数 所谓的全局函数,实际上就是jQuery对象的方法,但从实践的角度上看,他们是位于jQuery命名空间内部的函数 (1)添加一个函数,只需要将新函数指定为jQuery对象的一个属性. jQuery.five =function(){ alert("直接继承方式不一样"); } 调用: 复制代码 代码如下: $.five(); (2)添加多个函数 jQuery.five =func

打造自己的jQuery插件入门教程_jquery

本文实例讲述了打造自己的jQuery插件的方法.分享给大家供大家参考,具体如下: 写js插件并不麻烦,js插件有两类,类型插件和对象插件.首先举例: $.post(url); 这个是类型插件,换句话说该插件在调用的时候不需要指定对象.那么: $('p').click(); 这个是对象插件,也就是说使用该插件的时候需要指定对象. 在写jQuery插件的时候,都是有固定的模板: jQuery.plugin1 = function(text) { alert(text); };//类型级别框架,类似

jQuery插件制作方法详解

    jQuery插件制作方法详解   jquery插件给我的感觉清一色的清洁,简单.如Jtip,要使用它的功能,只需要在你的元素的class上加 上Jtip,并引入jtip.js及其样式即可以了.其他事情插件全包.我喜欢jquery的一个重要原因是发现她已经有了很多很好,很精彩的插件.写一 个自己的jQuery插件是非常容易的,如果你按照下面的原则来做,可以让其他人也容易地结合使用你的插件.     jquery插件给我的感觉清一色的清洁,简单.如Jtip,要使用它的功能,只需要在你的元素的