学习JQuery插件开发教程

STM32G4系列数字LLC控制程序开发实战 本文详细介绍了基于STM32G4系列MCU的数字LLC控制程序开发全流程。从开发环境搭建、中断服务函数设计,到核心的电压环PID算法、Burst模式控制、状态机设计以及软启动优化,提供了完整的实战代码和关键参数调试经验,帮助开发者高效实现高性能数字电源控制。 阅读详情

如果你跟我一样,jQuery属于入门级的,那么我建议你看我下一篇jQuery教程:自己动手开发jquery插件 ,这篇插件比较容易理解和模范,适合新手开发jQuery插件。推荐你去看一看。 在逛codeproject网站的时候,突然看到一篇文章:How to write plugin in Jquery. 如果对E文好的同学 ,可以看上面的连接。 现在我把上面网站的及结合自己的想法写这篇文章。希望能得到大牛们的支持和谅解。。。大鸟飞过。。。欢迎拍装。

一.介绍

 插件编写的目的是给已经有的一系列方法或函数做一个封装,以便在其他地方重复使用,方便后期维护。 JQuery除了提供一个简单、有效的方式进行管理元素以及脚本,它还还提供了例外一种机制:即给核心模块增加自己的方法和额外的功能。通过这种机制,Jquery允许我们自己创建属于我们自己的插件,提高我们在开发过程中的效率。

1.1JQuery的插件分为3中类型:

  1. 封装对象方法的插件(也就是对象级别的开发)这种类型的插件是我们今天需要讲的插件。
  2. 封装全局函数的插件(类级别开发)指可以把独立的函数添加到JQuery命名空间之下。

添加一个全局函数,我们只需如下定义:

jQuery.foo = function() {
 alert('This is a test. This is only a test.');
};

当然 你也可以添加多个全局函数:

jQuery.foo = function() { 
 alert('This is a test. This is only a test.'); 
}; 
jQuery.bar = function(param) { 
 alert('This function takes a parameter, which is "' + param + '".'); 
};

调用时和一个函数的一样的:jQuery.foo();jQuery.bar();或者$.foo();$.bar('bar'); 

 (3)选择器插件

1.2编写JQuery插件需要注意的地方: 

  1. 插件的推荐命名方法为:jquery.[插件名].js
  2. 所有的对象方法都应当附加到JQuery.fn对象上面,而所有的全局函数都应当附加到JQuery对象本身上。
  3. 在插件内部,this指向的是当前通过选择器获取的JQuery对象,而不像一般方法那样,内部的this指向的是DOM元素。
  4. 可以通过this.each 来遍历所有的元素
  5. 所有方法或函数插件,都应当以分号结尾,否则压缩的时候可能会出现问题。为了更加保险写,可以在插件头部添加一个分号(;),以免他们的不规范代码给插件带来 影响。
  6. 插件应该返回一个JQuery对象,以便保证插件的可链式操作。
  7. 避免在插件内部使用$作为JQuery对象的别名,而应当使用完整的JQuery来表示。这样可以避免冲突。

1.3JQuery插件的机制

 JQuery提供了2个用于扩展JQuery功能的方法。即:

  1. jQuery.fn.extend()
  2. jQuery.extend()

第一个就是我们前面说插件类型的第一个中情况,第二个就是指后面的2种情况。 jQuery.extend()在插件中友一个很重要的功能是扩展已经有的object的对象。 比如:

var newSrc=$.extend(dest,src1,src2,src3...)

它的含义是将src1,src2,src3...合并到dest中,返回值为合并后的dest,由此可以看出该方法合并。 示例:

var result=$.extend({},{name:"Tom",age:21},{name:"Jerry",sex:"Boy"})

得到的结果是:

result={name:"Jerry",age:21,sex:"Boy"}

详细的 可以查看:jQuery.extend 函数详解 里面对这个方法有很好的讲解。 使用命名空间 虽然在jQuery命名空间中,我们禁止使用了大量的javaScript函数名和变量名。但是仍然不可避免某些函数或变量名将于其他jQuery插件冲突,因此我们习惯将一些方法封装到另一个自定义的命名空间。

jQuery.myPlugin = {
    foo: function() {
        alert('This is a test. This is only a test.');
    },
    bar: function(param) {
        alert('This function takes a parameter, which is "' + param + '".');
    }
};

采用命名空间的函数仍然是全局函数,调用时采用的方法:

$.myPlugin.foo(); $.myPlugin.bar('baz');

二.第一个Jquery插件

如果需要写一个JQuery插件,你需要在$.fn对象后面增加一个属性名,这个属性名 其实 就是你的插件名。它的一般框架如下:

(function( $ ) { $.fn.myPlugin = function() { // 这里开始写功能需求 }; })( jQuery );

 现在我们需要写的插件的功能很简单,就是把一个对象给慢慢的隐藏起来。就是使用fadeOut()这个方法。 OK,我们打开 VS 2012.新建一个jscript文件,并且命名为:MyPlugin.js,并在里面添加如下代码:

(function ($) { $.fn.myPlugin = function () { this.fadeOut('normal'); }; })(jQuery);

怎么用呢?很简单。 新建一个html页面,把jquery文件以及刚刚我们MyPlugin.js文件导入到本次页面中。如下:

<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script> 
<script src="MyPlugin.js" type="text/javascript"></script> 
<script type="text/javascript"> 
$(document).ready(function () { 
 $("#btn1").click(function () { 
 $("#div1").myPlugin(); }); 
}); 
</script>
<div id="div1" style="width: 400px; height: 30px; background-color: Gray;"> My God</div> 
<input id="btn1" type="button" value="button" onclick="MyClick()" />

好的,你现在点击网页上面的按钮的时候,div就会缓缓的隐藏。。。因为我们设定的是normal嘛,里面也可以设定一些值之类的。 很兴奋的是,既然这个有智能提示,如下图: 

 三.插件运用在多个元素控件中。

3.1 运用在多个元素控件中

在上面编写JQuery插件需要注意的地方的第四点,写道 如果要遍历 则可以用this.each方法。$("ID").each 可以遍历jquery对象、数组以及集合。 OK。知道了这样子,那么我们的新的代码如下:

(function($) {
    $.fn.hoverElement = function() {
        this.each(function() {
            $(this).hover(function() {
                $(this).addClass("Add");
            },
            function() {
                $(this).removeClass("Remove");
            });
        })
    }
})(jQuery);

上面主要用到.each()方法进行遍历。代码很简单,就是把当前的对象的背景色css样式在“Add”和“Remove”直接切换。

<div> First Button.. </div> <div> Second Button.. </div> <div> Third Button.. </div>
<script type="text/javascript"> $(document).ready(function () { $(".hoverText").hoverElement(); }); </script>

 很简单,不解释。

3.2 链式操作

链式操作?都听过吧。。。比如下面这一句话:

$("#div1").css("color", "red").addClass("Add").animate({"width":"100px"},1000);

 就是能在当前的元素后面通过“.” 来实施更多的操作。这个动作特别的潇洒。 那我们要怎么才能实现这种效果呢?很简单,我能只需要把对象回去就可以了。请注意上面的第六点:插件应该返回一个JQuery对象,以便保证插件的可链式操作。 我们依旧看刚刚的例子:

(function($) {
    $.fn.hoverElement = function() {
        return this.each(function() {
            $(this).hover(function() {
                $(this).addClass("Add");
            },
            function() {
                $(this).removeClass("Remove");
            });
        })
    }
})(jQuery);

 代码都一样,唯一区别的是:this.each(function () { 这个前面加了一个 return。这样就实现了我们的链式操作。然后 你这样:

$(document).ready(function () { $(".hoverText").hoverElement().css("color","yellow"); });

能看到 文字已经变成了yellow色的了。

 四 自定义自己的插件

对于一个商业插件来说,自定义插件的样式是必不可少的。我们可以通过我们自己输入不同的样式,来改变开发者的默认样式。比如说最常见的 width、height、url、color等等。要是没有这些自定义的东西,那开发者开发的插件的利用价值就大大的减小了。 OK, 下面的这个实例的意思是 当我们hover一个对象的时候,它能改变它的text、background、foreground三个属性,也就是文本、背景色、前景色。用户可以设 定他自己想设定的值,而不是固定死的。当然,如果用户没有设置,我们会给他一个默认值。 定义这类插件的开发框架是:

$.fn.YouPlugin = function (options) {...}

为了防止一些偷懒的人,我们需要设置一些默认值,当它没有设置的时候,我们就用这些默认值。

var defaultVal = {
Text: 'Your mouse is over',
ForeColor: 'red',
BackColor: 'gray'
};

 那默认值和用户传进来的值是怎么联合在一起的呢?这个就需要我们在开篇的时候讲到的$.extend()知识了。

var obj = $.extend(defaultVal, options);

这样子的话,就把用户自定义的值覆盖了默认用户的值。如果用户没定义值,就用系统自定义的。代码如下:

(function($) {
    $.fn.textHover = function(options) {
        //options 经常用这个表示有许多个参数。 
        var defaultVal = {
            Text: 'Your mouse is over',
            ForeColor: 'red',
            BackColor: 'gray'
        };
        //默认值 
        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() {
                //定义一个hover方法。 
                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);

 代码也很简单,上面都有些了解释,此刻不在罗嗦。怎么用呢?很简单。

<div id="div1"> Mouse over here..... </div> <div id="div2"> Mouse over here..... </div>
$(document).ready(function () { $('#div1').textHover({ Text: 'I am going to over..', ForeColor: 'yellow', BackColor: 'Red' }); $('#div2').textHover({ Text: 'I am second div...' }); });

就能看到效果了。希望对你们有帮助。OK,到现在为止,应该一个插件开发的基本要素就这些了。本来后面还有一个比较复杂的代码,一起发的,等下一节吧! 源码下载

学习JQuery插件开发教程-前端开发博客 

深度学习模型轻量化方法之【量化】 量化虽然有着硬件友好和功效提升的特点,但它也引入了模型性能的折衷。因此,设计有效的量化策略需要在模型大小、性能以及运算速度之间做出平衡。随着深度学习算法和硬件加速技术的快速发展,量化方法在使深度网络轻量化和提高部署效率方面持续发挥着重要作用。 阅读详情

相关推荐

R语言实战:非正态数据下的Scheirer–Ray–Hare检验全流程解析

本文详细解析了在R语言中执行Scheirer–Ray–Hare检验的全流程。当数据不满足正态分布假设时,该非参数检验是传统双因素方差分析的有效替代方案。文章从原理、R环境配置、数据准备、代码实现、结果解读到事后比较与可视化,提供了完整的实战指南,帮助研究者稳健地分析多因素实验设计中的主效应和交互效应。

cc789的博客 406

jQuery插件开发

jQuery插件是对jQuery框架利用原型的扩展。插件通常是一个完备功能的封装,它是JQ功能的一个补充或扩展。注意:开发JQ插件,该插件是依赖jQuery的必须先引入jQuery,再引入插件。

m0_71873158的博客 2680

Qt (高仿Visio)流程图组件开发(一) 效果展示及基本开发框架构思

最近因为工作原因需要使用Qt开发一个类似于Visio的流程图组件,需满足基本的流程图功能,图元类型可自定义扩展,不同图元存有各类自定义数据,可以保存为xml文件,可以读取xml文件生成流程图等等。

qq_43793182的博客 1万+

如何开发一个简单的jQuery插件

然后,我们需要定义一些默认设置,并根据用户传入的options参数来合并用户设置。这样,我们就可以让用户自定义一些插件的行为和样式。我们可以使用一个对象字面量来定义默认设置,并使用$.extend()方法来合并用户设置。color:阴影的颜色,默认为黑色。blur:阴影的模糊程度,默认为5px。offsetX:阴影在水平方向上的偏移量,默认为0px。offsetY:阴影在垂直方向上的偏移量,默认为5px。// 插件代码// 插件逻辑});

1687F 371

BMS菊花链芯片怎么选?一张表对比ADI、TI、NXP五大厂家的隔离通信方案

本文深入对比了ADI、TI、NXP等五大厂商的BMS菊花链芯片隔离通信方案,涵盖技术演进、核心参数和场景化选型策略。通过实测数据和开发经验分享,帮助工程师在新能源汽车和储能系统中选择最优方案,提升通信可靠性和成本效益。

weixin_33724046的博客 432

Codex登录要手机验证码?Cockpit Tools跳过验证保姆级教程

摘要:OpenAI升级风控后,Codex登录需手机验证,增加批量账号使用成本。CockpitTools(GitHub 8.3k star)可绕过验证,支持多AI编程平台账号管理。操作步骤:1) 获取ChatGPT网页Session数据;2) 通过转换工具生成CPA格式JSON;3) 导入工具启动Codex。注意:仅适用于未绑定手机号的账号,Session会过期,且需防范数据泄露风险。商业账号通常直接提供认证文件。(150字)

5840

jQuery-插件开发

文章目录1. 什么是Jquery插件1.1 插件种类1.1.1 封装对象方法的插件(原型拓展)1.1.2 封装全局函数的插件(静态拓展)1.1.3 选择器插件1.2命名规范2. Jquery插件让渡(冲突)3. Jquery 插件中的闭包4.Jquery 的插件机制4.1 原型扩展4.1 静态扩展5. this关键字6.注意点6.1 参数配置6.2 默认值设置6.3 命名空间 1. 什么是Jquery插件 Jquery插件是对Jquery框架利用原型的一个扩充 插件通常是一个完备功能的封装,它是JQ功能的一

M_Edison的博客 1037

银河麒麟V10新特性解析:从安装到AI应用的全面指南

本文全面解析银河麒麟V10操作系统的新特性,从安装指南到AI应用开发,详细介绍了其智能调度引擎、神经网络加速和场景化AI工具集等核心功能。通过实战案例展示如何高效配置AI环境、优化性能,并解决常见问题,助力开发者在国产操作系统上实现高效AI开发与应用部署。

seed的博客 301

jQuery 插件开发

常用插件 文本溢出:dotdotdot.js 单行文本省略 多行文本省略 延迟加载:lazyload.js 插件编写 方法类插件 函数类插件

xiangxiongfly 1055

tkinter使用label视频播放

tkinter是python的界面开发包 使用tkinter显示视频流的一个办法是使用label来逐帧显示图片。 from Tkinter import * from PIL import ImageTk, Image import cv2 root = Tk() # Create a frame app = Frame(root, bg="white") app.grid() # Create a label in the frame lmian = Label(app) lmain.grid(

六十英里的专栏 5526

【unity实战】Spline 插件让物体沿路径 “丝滑” 走位,实现火车沿轨道移动——Spline 插件的使用

Unity Spline系统教程:实现火车轨道移动 摘要:本文介绍了Unity Spline系统的核心功能与实战应用,通过火车轨道移动案例演示了完整开发流程。内容包括:1)安装Spline包并绘制样条线轨道;2)调整样条节点和曲线弧度;3)使用Spline Instantiate组件实例化轨道模型;4)通过Spline Animate组件实现小车自动沿轨移动;5)补充讲解了轨道闭合、分支节点、循环模式等进阶技巧。该系统可用于创建河流、摄像机路径等多种曲线应用,文中提供了官方文档链接和详细操作步骤,适合Uni

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1826

跟我一起学JQuery插件开发

以前一直比较好奇,jquery插件是怎么开发的,怎么写属于自己的插件? 昨天在逛codeproject网站的时候,突然看到一篇文章:How to write plugin in Jquery. 如果对E文好的同学 ,可以看上面的连接。 现在我把上面网站的及结合自己的想法写这篇文章。希望能得到大牛们的支持和谅解。。。大鸟飞过。。。欢迎拍装。 资料来源: 【1】How to write pl...

weixin_34214500的博客 321

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

开发人员应关注的20个jQuery网站/博客

1. John Resig – http://ejohn.org 毫无疑问,jQuery的缔造者的博客是你首先必须关注的。   2. Filmament Group Lab 这个也是必看之一,因为jQuery UI类库就出自这个网站   3. Learning jQuery 老牌的学习jQuery的网站之一,这个网站是由几个作者联合建立 4.

做一个幸福的人 1131

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

很不错的jQuery学习资料和实例

这些都是学习Jquery很不错的资料,整理了一下,分享给大家。希望能对大家的学习有帮助。 帕兰 Noupe带来的51个最佳jQuery教程和实例, 向大家介绍了jQuery的一些基本概念和使用的相关教程, 如果你对jQuery感兴趣, 也可以查看帕兰写的文章: 37个更加出色的jQuery插件 45个新鲜出炉的jQuery插件 50多个强大的jQuery插件应用实例 Jo...

weixin_30648587的博客 91

jQuery学习资料分享

jQuery学习资料分享 学习jQuery有一段时间了,收集了不少资料,这里把资料的链接分享给大家。另外推荐大家微博关注“开源中国”、“HTML5研究小组”、“百度技术沙龙”等,还有博客园的“梦想天空(山边小溪)”博客,我的很多资料都是从上面收集到的。 jQuery学习教程: (1)20个jQuery分页插件和教程,附带实例 (2)2011最有用最潮的jQuery特效教程 (3)如何

基咯咯 873

20个值得开发人员关注的jQuery技术博客

1. John Resig - http://ejohn.org 毫无疑问,jQuery的缔造者的博客是你首先必须关注的。 2. Filmament Group Lab 这个也是必看之一,因为jQuery UI类库就出自这个网站。 3. Lear...

chengqinjian6893的博客 147

jstutorial jQuery基础教程:选择器与插件开发终极指南

jQuery是JavaScript领域使用最广泛的函数库,全球超过57.5%的网站都在使用它。这个jstutorial项目提供了完整的jQuery学习资料,从基础选择器到高级插件开发,帮助前端开发者快速掌握这一必备技能。jQuery的核心优势在于简化DOM操作和统一浏览器API,让网页开发变得更加简单高效。✨ ## 为什么选择jQuery? ### 简单易用的DOM操作 jQuery让网页元素

gitblog_00525的博客 774

jquery学习笔记1-jquery插件的安装

学习JQUERY了,虽然以前学过,但基本上忘记了。。。。。 JQUERY有个好用的插件叫Spket 官方的网址是:http://www.spket.com 下载地址:http://www.spket.com/download.html 下Eclipse的哈,然后安上 再在Eclipse里面设置 [img]http://dl.iteye.com/upload/attachment/169...

langhua9527的专栏 141

jQuery Initialize 插件教程

jQuery Initialize 插件教程 本教程将引导您了解如何使用 jQuery Initialize 这一开源项目,包括其目录结构、启动文件以及配置文件的解析。此插件设计用于简化 jQuery 元素初始化过程,确保新元素插入时也能自动应用初始化逻辑。 1. 项目目录结构及介绍 . ├── README.md # 项目说明文件,包含基本使用方法和作者注释。 ├── LICEN...

gitblog_00901的博客 1364

[置顶] JQuery插件学习教程

这是JQuery其它常用插件的视频教程,包括validate插件,、comet插件等。同时有大量实例项目,如果你是喜欢JQuery的童鞋千万不要错过。 教程的内容有: 1_validate插件(1) 2_validate插件(2) 3_validate插件(3) 4_validate插件(4) 5_validate插件(5) 6_comet(1) ...

weixin_34082854的博客 106

10个jquery动画菜单:插件和教程

jquery是一个非常容易使用,同时也是扩展性很好的一个javascript框架。使用jquery可以非常容易的实现一些页面的ajax效果。本文收集一批使用jquery实现很酷的动画效果菜单的插件和教程。插件LavaLamp相信很多人都见过这个很酷的菜单插件,也有很多网站成功的应用了这个插件。插件主页jquery Kwicks 插件如果你多Mootools有些了解,或许会注意到Mooto...

ddj0002的博客 116

jQuery插件

jQuery插件 1.1 jQuery之家 官网:http://www.htmleaf.com/ jQuery之家致力于搜集和整理各种jQuery插件,jQuery特效,jquery ui,jQuery 教程,JS特效,网页特效,以及各种html5,css3动画和效果。 1.2 jQuery插件库 官网:http://www.jq22.com/ 本站致力于收集jQuery插件和提供各种jQuery...

石先生的博客 195

jQuery中文入门指南,翻译加实例,jQuery的起点教程

中文版译者:Keel此文以实例为基础一步步说明了jQuery的工作方式。现以中文翻译(添加我的补充说明)如下。如有相关意见或建议请麻烦到我的 BLOG 写个回复或者 EMAIL 告知。英文原版:http://jquery.bassistance.de/jquery-getting-started.html ,感谢原文作者 Jörn Zaefferer本文发布已征求原作者同意。

渴望... 2189

51个最佳jQuery教程和示例

由Noupe带来的51个最佳jQuery教程和示例, 主要向大家介绍了jquery的一些基本概念和使用的相关教程, 帕兰继续为你翻计, 如果你对jQuery感兴趣, 也可以查看帕兰之前翻译的一些文章: 37个更加出色的jQuery插件45个新鲜出炉的jQuery插件50多个强大的jQuery插件应用实例 John Resig John Resig, 这位是 JQuery javascript脚本...

weixin_33725272的博客 394
上一篇: iframe框架一个页面中嵌套到另外一个页面
下一篇: html图片标签img的介绍以及基本用法详解
wwwarewow
博客等级 码龄17年 4795粉丝 167原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wwwarewow

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值