博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jQuery插件开发初探
阅读量:6683 次
发布时间:2019-06-25

本文共 2681 字,大约阅读时间需要 8 分钟。

最简单的插件

$.fn.changeStyle = function (colorStr) {    $(this).css('color',colorStr);}

应用如下:

    
jquery插件开发

Hello jQuery!

422101-20170119115002000-4352543.png

但是如果想连续使用,就不好用了,比如:

    
jquery插件开发

Hello jQuery!

这里的设置字体大小就没有效果了。

需要简单处理一下上面的拓展程序。

$.fn.changeStyle = function (colorStr) {    this.css('color',colorStr);    return this;}

加上return this;就可以了。

进一步扩展

(function ($) {    $.fn.changeStyle = function (colorStr) {        this.css('color',colorStr);        return this;    }}(jQuery));

这样处理会更加安全,防止被污染

支持更多参数

(function ($) {    $.fn.changeStyle = function (colorStr,fontSize) {        this.css('color',colorStr).css('font-size',fontSize);        return this;    }}(jQuery));

这里传递了两个参数

    
jquery插件开发

Hello jQuery!

灵活处理参数

(function ($) {    $.fn.changeStyle = function (option) {        this.css('color',option.colorStr).css('font-size',option.fontSize);        return this;    }}(jQuery));

这里用json对象传递参数,更加灵活。

    
jquery插件开发

Hello jQuery!

支持默认参数处理

(function ($) {    $.fn.changeStyle = function (option) {        var defaultSetting = {colorStr:'blue',fontSize:'12px'};        var setting        = $.extend(defaultSetting,option);        this.css('color',setting.colorStr).css('font-size',setting.fontSize);        return this;    }}(jQuery));

这里会合并给定的参数和默认的参数,

如果只传一个参数,就会启用默认的参数。

    
jquery插件开发

Hello jQuery!

422101-20170119111901921-1474126400.png

后记

也可以这样处理

(function ($) {    $.fn.extend({        changeStyle:function (option) {            var defaultSetting = {colorStr:'blue',fontSize:'12px'};            var setting        = $.extend(defaultSetting,option);            this.css('color',setting.colorStr).css('font-size',setting.fontSize);            return this;        }    });}(jQuery));

$.fn $.fn.extend $.extend 的理解

(function ($) {    $.fn.extend({        changeStyle: function (option) {            var defaultSetting = {colorStr: 'blue', fontSize: '12px'};            var setting = $.extend(defaultSetting, option);            this.css('color', setting.colorStr).css('font-size', setting.fontSize);            return this;        }    });    // 静态方法,直接通过$调用,不可以通过元素调用    $.extend({        min: function (a, b) {            return a < b ? a : b;        },        max: function (a, b) {            return a > b ? a : b;        }    });    // 可以通过元素调用    $.fn.extend({        min: function (a, b) {            return a < b ? a : b;        },        max: function (a, b) {            return a > b ? a : b;        }    });}(jQuery));

调用如下,

    
jquery插件开发

Hello jQuery!

1. $.fn 和 $.fn.extend 都是针对成员进行扩展的,$.extend扩展的是静态方法。2. jQuery.fn.extend拓展的方法,你得用在jQuery对象上面才行啊!3. jQuery.extend(),是扩展的jQuery这个类。本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/6305984.html,如需转载请自行联系原作者
你可能感兴趣的文章
windows cmd命令学习
查看>>
Linux 正则表达式与文本处理器 三剑客
查看>>
002-利润计算
查看>>
Tensorflow实现CNN
查看>>
543. Diameter of Binary Tree(两节点的最长路径)
查看>>
数字证书算法概念
查看>>
Git 分支(分布式版本控制系统)
查看>>
iOS - Card Identification 银行卡号识别
查看>>
COCOS2D-X 无法编译到Android平台的解决办法
查看>>
SVN
查看>>
Microsoft SQL - 指令
查看>>
一个复杂的SQL语句
查看>>
跟随我在oracle学习php(23)
查看>>
MongoDB的使用
查看>>
【BZOJ】3036: 绿豆蛙的归宿
查看>>
RvmTranslator for Linux
查看>>
百度面试经历
查看>>
玩叠骰子
查看>>
TOJ 4383: n % ( pow( p , 2) ) ===0
查看>>
oracle数据库学习
查看>>