插件的基本要点:

1.命名推荐:jquery.[插件名].js,避免和其他js库插件混淆。

2.对象方法附加到:jQuery.fn上,全局函数附加到:jQuery对象本身。

3.在插件内部,this指向当前通过选择器获取的jQuery对象,非dom对象。

4.如果选择器获取多个元素,可通过this.each遍历。

5.插件应该返回jQuery对象,方便链式操作。

6.避免在插件内部使用$别名,应该用完整的jQuery表示。可利用闭包来避免这个问题。

//为了更好的兼容性,前边加个分号,防止压缩时其他js代码没加分号
;(function($){ //此处将$作为匿名函数的形参传入
//编写代码
})(jQuery); //jQuery作为实参传入,就可以在匿名函数内使用$

插件中的闭包理解:

;(function($){
var foo = 1; //定义局部变量,仅匿名函数内部可以访问
var bar = function(){
/* 在匿名函数内部的函数都能访问foo,即便是在匿名函数的外部调用bar函数的时候,也可以在bar()内部访问到foo,但在匿名函数的外部直接访问foo是做不到的 */
} /* 下边的函数让匿名函数内部的函数bar()逃逸到全局可访问的范围,这样就可以在匿名函数的外部通过jQuery.BAR()来访问内部定义的函数bar(),并且内部函数bar()也能访问foo变量 */
$.BAR = bar();
})(jQuery);

锋利的jQuery-7--编写插件基础知识的更多相关文章

  1. jQuery自己编写插件()

    引言: 在项目中不同页面经常要用到已经写好的交互,比如弹窗,比如下拉菜单,比如选项卡,比如删除... 此时如果每次都把代码copy一份无疑是一件比较麻烦并且无趣的事情,而且个人认为有些low了,我们可 ...

  2. jQuery之编写插件

    一.学习插件编写背景 作为一名前端人员,应该注重前端复用性及组件化,更应该考虑前端的性能优化,做到代码简洁有序,不冗余.特别是在大型团队中,如果一个团队中存在多个功能相似的组件,举个栗子,拿分页组件举 ...

  3. jQuery的一些简单基础知识

    ### 什么是jQuery?jQuery(js+Query)是一款优秀的JavaScript库,帮助开发人员用最少的代码做更多的事情,官网网站http://jquery.com/ ### 为什么学习j ...

  4. 两个jquery编写插件实例

    (1) 封装基于jq弹窗插件   相信码友们对于$.fn.extexd();$.extend()以及$.fn.custom和$.custom都有一定的了解:我阐述一下我自己对于$.fn.custom和 ...

  5. jQuery学习笔记 - 基础知识扫盲入门篇

    jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...

  6. jQuery 插件基础

    jQuery 插件基础 翻译 How to Create a Basic Plugin 如果你需要在 jQuery 选择器上执行一系列重复操作, 这时候你需要编写 jQuery 插件. jQuery ...

  7. jquery基础知识汇总

    jquery基础知识汇总 一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库.源码戳这 jQu ...

  8. JQuery基础知识(2)

    JQuery基础知识(2) JQuery滑动效果 1. JQuery slideDown(); 语法: $(selector).slideDown(speed,callback); 可选的 speed ...

  9. jquery编写插件的方法

     版权声明:作者原创,转载请注明出处! 编写插件的两种方式: 1.类级别开发插件(1%) 2.对象级别开发(99%) 类级别的静态开发就是给jquery添加静态方法,三种方式 1.添加新的全局函数 2 ...

随机推荐

  1. Linux 进程通信(共享内存区)

    共享内存是由内核出于在多个进程间交换信息的目的而留出的一块内存区(段). 如果段的权限设置恰当,每个要访问该段内存的进程都可以把它映像到自己的私有地址空间中. 如果一个进程更新了段中的数据,其他进程也 ...

  2. Code First开发系列之管理并发和事务(转)

    转自:http://www.cnblogs.com/farb/p/ConcurrencyAndTransctionManagement.html 返回<8天掌握EF的Code First开发&g ...

  3. ANSI,UTF8等等这些格式

    之前一直在纠结这些格式到底有什么区别,有时候因为格式的问题会让人抓狂. 下面通过实战来分析下: 下面在windows上建立一个txt文档.txt的优势是没有文件头,这样比较好分析. ANSI格式: 可 ...

  4. Android中的Intent Filter匹配规则介绍

    本文主要介绍了隐式Intent匹配目标组件的规则,若有叙述不清晰或是不准确的地方希望大家指出,谢谢大家: ) 1. Intent简介 Intent用于在一个组件(Component,如Activity ...

  5. UITextField实现左侧空出一定的边距

    就是通过uitextfield的leftview来实现的,同时要设置leftviewmode. 如果设置左右边距,需要再加上rightView功能 -(void)setTextFieldLeftPad ...

  6. [BZOJ2879][Noi2012]美食节(最小费用最大流动态加边)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2879 分析: 和bzoj1070一样,但这题的数据范围大了很多,如果直接建图就会TLE ...

  7. [BZOJ1089][SCOI2003]严格n元树(递推+高精度)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1089 分析: 第一感觉可以用一个通式求出来,但是考虑一下很麻烦,不好搞的.很容易发现最 ...

  8. JAVA中的NIO(二)

    一.内存文件映射 内存文件映射允许我们创建和修改那些因为太大而不能放入内存中的文件.有了内存文件映射,我们就可以假定整个文件都在内存中,而且可以完全把文件当作数组来访问. package com.dy ...

  9. [工具类]文件或文件夹xx已存在,则重命名为xx(n)(2)

    写在前面 最近一直在弄文件传输组件,其中一个功能就是,在接收端接收文件时,如果文件已经存在了,则对其进行文件名+索引的方式进行自动重命名,之前也写个类似的工具类,总感觉代码太冗余,每回头想想,总觉得心 ...

  10. CSharpThinking---C#版本总结(附加三)

    C#版本总结: 日期 框架.net Visual Studio C# CLR 2002.2  1.0 2002 1.0 1.0 2003.4  1.1 2003 1.2 1.1 2005.11  2. ...