jquery插件开发基础入门
jquery插件开发基础入门
入门
编写一个jquery插件开始于给jquery.fn加入新的功能属性,此处添加的对象属性的名称就是你的插件名称
jQuery.fn,myPlugin = function(){
               //你自己的插件代码 
};
为了避免冲突我们应该将jQuery传递给一个自我执行的封闭程序
(function($){
    $.fn.myPlugin = function(){
                //你自己的插件代码
       }
})(jQuery)
环境
现在我们可以编写实际的插件代码,但是在这之前我们必须得对插件所处的环境有个概念,在插件的范围里,this关键字代表了这个插件要执行的jQuery对象,这里容易产生一个普遍的误区,因为在其他包含callback的jQuery函数中,this关键字代表了原生的DOM元素,这常常会导致开发者误将this关键字无谓的包在jQuery中,如下所示
(function($){
    $.fn.myPlugin = function(){
        //此处没有必要将this包在$号中如$(this),因为this已经是一个jQuery对象。
        //$(this)等同于$($("#element"));
        this.fadeIn("normal",function(){
            //此处callback函数中this关键字代表一个DOM元素
        })
    }
})(jQuery)  
//调用
$("#element").myPlugin();
基础知识
现在我们理解了jQuery插件的基础知识,让我们写一个插件
(function($){
    $.fn.maxHeight = function(){
         var max = 0;
         this.each(function(){
            max = Math.max(max,$(this).height());
        });
        return max;
    };
})(jQuery);
var tallest = $("div").maxHeight(); //返回高度最大的div元素的高度
维护Chainability(维护链接性)
很多时候一个查件的恶意图仅仅是以某种方式修改收集的元素,并把它们传递给链中的下一个方法。要保持一个插件的chainability必须确保你的插件返回this关键字
(function($){
     $.fn.lockDimensions = function(type){
            return this.each(function(){
                var $this = $(this);
                if(!type || type =="width"){
                    $this.width($this.width());
                }
                if(!type || type =="height"){
                    $this.height($this.height());
                }
            })
      }   
})(jQuery)
$("div").lockDimensions("width").css("color","red");
//由于插件返回this关键字,它保持了chainability,这样jQuery收集的元素可以继续被jQuery方法如.css控制。 因此,如果你的插件不返回固有的价值,你应该总是在其作用范围内返回this关键字。 此外,你可能会推断出,传递给插件的参数将会在插件的作用范围内被传递。 因此,在前面的例子,字符串’width’变成了插件的类型参数。  
默认值和选项
对于比较复杂的和提供了许多选项可制订的插件,最好有个当插件被调用的时候可以被拓展的默认设置(通过使用$.extend).
(function($){
    $.fn.tooltip = function(options){
        //创建一些默认值,拓展任何被提供的选项
        var settings = $.extend({
            "location" : "top",
            "background-color" : "blue"
        },options);
        return this.each(function(){
            //Tooltip插件代码
        });
    };
})(jQuery)
$("div").tooltip({
            "location":"left"
})
jquery插件开发基础入门的更多相关文章
- jquery插件开发快速入门
		1.添加jQuery对象方法添加jQuery对象方法:jQuery.prototype.myMethod. 在jQuery源码中有一句:jQuery.fn = jQuery.prototype,也就是 ... 
- jQuery插件开发入门
		扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间.这篇文章将概述jQuery插件开发的基本知识,最佳做法和常见的陷阱. 入门 编写一个jQuery插件开始于给jQuery.fn加入 ... 
- jQuery:自学笔记(1)——基础入门
		jQuery:自学笔记(1)——基础入门 认识JQuery 1.jQuery概述 jQuery是一个快速.小巧 .功能丰富的JavaScript函数库.它可以实现“写的少,做的多”的目标. jQuer ... 
- jQuery官方基础教程笔记(转载)
		本文转载于阮一峰的博文,内容基础,结构清晰,是jquery入门不可多得的资料,非常好,赞一个. 阮一峰:jQuery官方基础教程笔记 jQuery是目前使用最广泛的javascript函数库. 据统计 ... 
- jQuery插件开发详细教程
		这篇文章主要介绍了jQuery插件开发详细教程,将概述jQuery插件开发的基本知识,最佳做法和常见的陷阱,需要的朋友可以参考下 扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间. ... 
- JQuery学习使用笔记  --  JQuery插件开发
		内容转载自 http://www.css88.com/archives/4821 扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间.这篇文章将概述jQuery插件开发的基本知识,最 ... 
- JavaScript学习笔记(四)——jQuery插件开发与发布
		jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定好用, ... 
- JavaScript学习总结(四)——jQuery插件开发与发布
		jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定好用, ... 
- jQuery插件开发(转)
		jQuery插件开发全解析 jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命 ... 
随机推荐
- blockdev命令和blkid命令
			blockdev命令和blkid命令 http://www.jb51.net/LINUXjishu/310389.html block相关的命令 这篇文章主要介绍了Linux blockdev命令设置 ... 
- 压缩文本、字节或者文件的压缩辅助类-GZipHelper 欢迎收藏
			压缩文本.字节或者文件的压缩辅助类-GZipHelper 欢迎收藏 下面为大家介绍一.NET下辅助公共类GZipHelper,该工具类主要作用是对文本.字符.文件等进行压缩与解压.该类主要使用命名空间 ... 
- RFC-2068-http
			本文档规定了互联网社区的标准组协议,并需要讨论和建议以便更加完善.请参考 “互联网官方协议标准”(STD 1)来了解本协议的标准化状态.本协议不限流传发布. 版权声明 Copyright (C) Th ... 
- JDBC的增删改写成一个方法,调用一个工具类
			package com.hx.jdbc.connection; import java.sql.Connection; import java.sql.Statement; import com.my ... 
- Ajax提交整个表单
			//view页面 <script> $(function () { $("#btnAdd").click(function () { var pars = $(&quo ... 
- vs extension
			优先级高低 
- oracle 查看某session的历史执行sql情况
			1. 查看性能最差的前100sql SELECT * FROM ( SELECT PARSING_USER_ID EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,sq ... 
- Uva 11090 在环中
			题目链接:http://vjudge.net/contest/143318#problem/A 题意: 求平均权值最小的回路. 分析: 平均权值不可能超过最大边,二分查,然后,由于是平均权值,就可以转 ... 
- 为PetaPoco添加实体模板
			Brad为我们提供了T4模板,因为公司一直在使用CodeSmith,故为其写了一个CodeSmith的模板,代码如下: <%-- Name:EntityTemplates Author: Des ... 
- R----ggplot2包介绍学习
			分析数据要做的第一件事情,就是观察它.对于每个变量,哪些值是最常见的?值域是大是小?是否有异常观测? ggplot2图形之基本语法: ggplot2的核心理念是将绘图与数据分离,数据相关的绘图与数据无 ... 
