学习要点:

  • 1.插件概述
  • 2.验证插件
  • 3.自动完成插件
  • 4.自定义插件

插件(Plugin)也成为 jQuery 扩展(Extension),是一种遵循一定规范的应用程序接口编写出来的程序。目前 jQuery 插件已超过几千种,由来自世界各地的开发者共同编写、验证和完善。而对于 jQuery 开发者而言,直接使用这些插件将快速稳定架构系统,节约项目成本。

一.插件概述

插件是以 jQuery 的核心代码为基础,编写出符合一定规范的应用程序。也就是说,插件也是 jQuery 代码,通过 js 文件引入的方式植入即可。插件的种类很多,主要大致可以分为:UI 类、表单及验证类、输入类、特效类、Ajax类、滑动类、图形图像类、导航类、综合工具类、动画类等等。引入插件是需要一定步骤的,基本如下:

  • 1.必须先引入 jquery.js 文件,而且在所有插件之前引入;
  • 2.引入插件;
  • 3.引入插件的周边,比如皮肤、中文包等。

二.验证插件

Validate.js 是 jQuery 比较优秀的表单验证插件之一。这个插件有两个 js 文件,一个是主文件,一个是中文包文件。使用的时候,可以使用 min 版本。验证插件包含的两个文件分别为:jquery.validate.js 和 jquery.validate.messages_zh.js。

//HTML 内容
<script type="text/javascript" src="jquery.validate.js"></script>
<script type="text/javascript" src="jquery.validate.messages_zh.js"></script>
<form>
  <p>用 户 名:<input type="text" class="required" name="username" minlength="2" /> *</p>
  <p>电子邮件:<input type="text" class="required email" name="email" /> *</p>
  <p>网 址:<input type="text" class="url" name="url" /></p>
  <p><input type="submit" value="提交" /></p>
</form>//jQuery 代码
$(function () {
  $('form').validate();
});

只要通过 form 元素的 jQuery 对象调用 validate()方法,就可以实现“必填”、“不能小于两位”、“电子邮件不正确”、“网址不正确”等验证效果。除了 js 端的 validate()方法调用,表单处也需要相应设置才能最终得到验证效果。

  • 1.必填项:在表单设置 class="required";
  • 2.不得小于两位:在表单设置 minlength="2";
  • 3.电子邮件:在表单中设置 class="email";
  • 4.网址:在表单中设置 class="url"。

三.自动完成插件

所谓自动完成,就是当用户输入部分字符的时候,智能的搜索出包含字符的全部内容。比如:输入 a,把匹配的内容列表展示出来。

//HTML 内容
<script type="text/javascript" src="jquery.autocomplete.js"></script>
<script type="text/javascript" src="jquery-migrate-1.2.1.js"></script>
<link rel="stylesheet" href="jquery.autocomplete.css" type="text/css" />
//jQuery 代码
var user = ['about', 'family', 'but', 'black'];
$('form input[name=username]').autocomplete(user, {
  minChars : 0 //双击显示全部数据
});

注意:这个自动完成插件使用的 jQuery 版本较老,用了一些已被新版本的 jQuery 废弃删除的方法,这样必须要向下兼容才能有效。所以,去查找插件的时候,要注意一下他坚持的版本。

四.自定义插件

自己编写一个 jQuery 插件。按照功能分类,插件的形式可以分为一下三类:

  • 1.封装对象方法的插件;(也就是基于某个 DOM 元素的 jQuery 对象,局部性)
  • 2.封装全局函数的插件;(全局性的封装)
  • 3.选择器插件。(类似与.find())

经过日积月累的插件开发,开发者逐步约定了一些基本要点,以解决各种因为插件导致的冲突、错误等问题,包括如下:

  • 1.插件名推荐使用 jquery.[插件名].js,以免和其他 js 文件或者其他库相冲突;
  • 2.局部对象附加 jquery.fn 对象上,全局函数附加在 jquery 上;
  • 3.插件内部,this 指向是当前的局部对象;
  • 4.可以通过 this.each 来遍历所有元素;
  • 5.所有的方法或插件,必须用分号结尾,避免出现问题;
  • 6.插件应该返回的是 jQuery 对象,以保证可链式连缀;
  • 7.避免插件内部使用$,如果要使用,请传递 jQuery 进去。

按照以上的要点,我们开发一个局部或全局的导航菜单的插件。只要导航的<li>标签内部嵌入要下拉的<ul>,并且 class 为 nav,即可完成下拉菜单。

//HTML 部分
<ul class="list">
  <li>导航列表
    <ul class="nav">
      <li>导航列表 1</li>
      <li>导航列表 1</li>
      <li>导航列表 1</li>
      <li>导航列表 1</li>
      <li>导航列表 1</li>
      <li>导航列表 1</li>
    </ul>
  </li>
  <li>导航列表
    <ul class="nav">
      <li>导航列表 2</li>
      <li>导航列表 2</li>
      <li>导航列表 2</li>
      <li>导航列表 2</li>
      <li>导航列表 2</li>
      <li>导航列表 2</li>
    </ul>
  </li>
</ul>
//jquery.nav.js 部分
(function ($) {
  $.fn.extend({
    'nav' : function (color) {
      $(this).find('.nav').css({
        listStyle : 'none',
        margin : 0,padding : 0,
        display : 'none',
        color : color
      });
      $(this).find('.nav').parent().hover(function () {
        $(this).find('.nav').slideDown('normal');
      }, function () {
        $(this).find('.nav').stop().slideUp('normal');
      });
      return this;
    }
  });
})(jQuery);

Jquery15 插件的更多相关文章

  1. Angular杂谈系列1-如何在Angular2中使用jQuery及其插件

    jQuery,让我们对dom的操作更加便捷.由于其易用性和可扩展性,jQuer也迅速风靡全球,各种插件也是目不暇接. 我相信很多人并不能直接远离jQuery去做前端,因为它太好用了,我们以前做的东西大 ...

  2. Jenkins 安装的HTML Publisher Plugin 插件无法展示ant生成的JunitReport报告

    最近在做基于jenkins ant  junit 的测试持续集成,单独ant junit生成的junitreport报告打开正常,使用Jenkins的HTML Publisher Plugin 插件无 ...

  3. 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)

    前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...

  4. solr服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件

    昨天已经在Tomcat容器中成功的部署了solr全文检索引擎系统的服务:今天来分享一下solr服务在海量数据的网站中是如何实现数据的检索. 在solr服务中集成IKAnalyzer中文分词器的步骤: ...

  5. 使用Visual Studio SDK制作GLSL词法着色插件

    使用Visual Studio SDK制作GLSL词法着色插件 我们在Visual Studio上开发OpenGL ES项目时,避免不了写Shader.这时在vs里直接编辑shader就会显得很方便. ...

  6. 工欲善其事,必先利其器 之 VS2013全攻略(安装,技巧,快捷键,插件)!

    如有需要WPF工具的朋友可以移步 工欲善其事,必先利其器 之 WPF篇: 随着开发轨迹来看高效WPF开发的工具和技巧 之前一篇<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATI ...

  7. Jquery mobiscroll 移动设备(手机)wap日期时间选择插件以及滑动、滚动插件

    Jquery Mobiscroll是一个用于触摸设备(Android phones, iPhone, iPad, Galaxy Tab)的日期和时间选择器jQuery插件.以及各种滑动插件 可以让用户 ...

  8. 10个最好用的HTML/CSS 工具、插件和资料库

    大家在使用HTML/CSS开发项目的过程中,有使用过哪些工具,插件和库?下面介绍的10种HTML/CSS工具,插件和资料库,是国外程序员经常用到的. Firebug Lite FirebugLite ...

  9. 在Sublime Text 3上安装代码格式化插件CodeFormatter

    1.了解CodeFormatter插件 在Sublime Text 3中编写代码,为了能让我们的代码格式变得漂亮整洁,需要一个能自动格式代码的插件.这里发现CodeFormatter插件不错,它能支持 ...

随机推荐

  1. 160603、使用pd4ml.jar和ss_css2.jar转pdf的工具类

    注意:需要导入pd4ml.jar和ss_css2.jar import java.awt.Insets;import java.io.BufferedInputStream;import java.i ...

  2. Configuring Logging 配置日志

    NGINX Docs | Configuring Logging https://docs.nginx.com/nginx/admin-guide/monitoring/logging/[ 在上层设置 ...

  3. PXE,ipmi,bare metal

    IPMI(Intelligent Platform Management Interface)是一个智能平台管理接口. 用户可以利用IPMI 监视服务器等设备的物理特征,如各部件的温度.电压.风扇工作 ...

  4. Spark 源码分析 -- RDD

    关于RDD, 详细可以参考Spark的论文, 下面看下源码 A Resilient Distributed Dataset (RDD), the basic abstraction in Spark. ...

  5. 20190401-记录一次bug ConstraintViolationException

    org.hibernate.exception.ConstraintViolationException 违反唯一约束条件 导致这个问题的原因有很多种. 在查询数据库时发生了这样的错误,一般这样的问题 ...

  6. 在HTML里面HEAD部分的META元素要表达的内容是什么

    1.name属性主要有以下几种参数: A.Keywords(关键字) 说明:keywords用来告诉搜索引擎你网页的关键字是什么. 举例:<meta name ="keywords&q ...

  7. JS之for...in和for...of

    for...in输入键: for...in循环有几个缺点. 数组的键名是数字,但是for...in循环是以字符串作为键名“0”.“1”.“2”等等. for...in循环不仅遍历数字键名,还会遍历手动 ...

  8. d3.js 之增加感染力:使用转场效果

    转场/transition 图形比数据有感染力,动起来的图形比静态的图形更有感染力. 转场是一种过渡,提供两个稳定状态间的一种动态渐进的变化.转场的概念来源于电影. 电影中存在不同场景之间的切换,比如 ...

  9. Android 查看自己的keystore的别名及相关信息

    1.在DOS窗口下进入自己的keystore所在位置,输入 keytool -list  -v -keystore xxxx.keystore -storepass 密码 xxxx.keystore是 ...

  10. Linux的概念与体系(转)

    学linux就用它了 http://www.cnblogs.com/vamei/archive/2012/10/10/2718229.html