创建简单的jquery插件

</pre><p>1、创建基本插件的通用方法:</p><p></p><pre name="code" class="html">$.fn.greenify = function() {
    this.css( "color", "green" );
};

$( "a" ).greenify();

2、增加链式的调用:在上面的方法中增加this的返回

$.fn.greenify = function() {
    this.css( "color", "green" );
    return this;
}

$( "a" ).greenify().addClass( "greenified" );

3、保护js命名空间的干净 减少和其他的插件的污染, 避免和别的插件的$的冲突,我们需要把我们的代码放在一个立即调用的函数表达式内

然后传递jQuery,参数命名为$

(function ( $ ) {

    $.fn.greenify = function() {
        this.css( "color", "green" );
        return this;
    };

}( jQuery ));

另外,立即调用函数的主要目的是允许我们使用我们的私有变量,可以把值存储在一个变量中

这样就可以在立即调用函数中定义私有变量而不污染公共环境

(function ( $ ) {

    var shade = "#556b2f";

    $.fn.greenify = function() {
        this.css( "color", shade );
        return this;
    };

}( jQuery ));

尽可能的定义在一个方法内

(function( $ ) {

    $.fn.openPopup = function() {
        // Open popup code.
    };

    $.fn.closePopup = function() {
        // Close popup code.
    };

}( jQuery ));
应该更改成:<pre name="code" class="html">(function( $ ) {

    $.fn.popup = function( action ) {

        if ( action === "open") {
            // Open popup code.
        }

        if ( action === "close" ) {
            // Close popup code.
        }

    };

}( jQuery ));

4、如果获取的是一个dom集合,想操作其中的符合条件的元素使用.each()的方法循环这个dom集合,返回的操作修改后的元素集,以供继续调用方法

$.fn.myNewPlugin = function() {
    return this.each(function() {
        // Do something to each element here.
    });

};

5、扩展参数:使用自定义的参数 覆盖默认的参数 $.extend(settings,options);

function ( $ ) {

    $.fn.greenify = function( options ) {

        // This is the easiest way to have default options.
        var settings = $.extend({
            // These are the defaults.
            color: "#556b2f",
            backgroundColor: "white"
        }, options );

        // Greenify the collection based on the settings variable.
        return this.css({
            color: settings.color,
            backgroundColor: settings.backgroundColor
        });

    };

}( jQuery ));
$( "div" ).greenify({
    color: "orange"
});

以下是以上的综合示例:

<!DOCTYPE html>
<html>
  <head>
    <title>MyHtml.html</title>

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
	<style type="text/css">
		a{display: block;width: 20;height: 20;ba}
	</style>
	<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
	<script type="text/javascript">
		(function($){
			$.fn.greenify = function(options){
				var settings = $.extend(
						{color:"green",
						backgroundColor:"black"},options);
				var that = this;
				return that.each(function(){
					$(this).css({
						color:settings.color,
						backgroundColor:settings.backgroundColor
					});
				});
			};
		})(jQuery);
		$(function(){
			$("a:lt(2)").greenify({color:"orange"}).html(111);
		});
	</script>
  </head>

  <body>
    This is my HTML page. <br>
    <a href="#"> dianji </a>
    <a href="#"> dianji11 </a>
    <a href="#"> dianji221 </a>
  </body>
</html>
时间: 2024-08-28 07:09:13

创建简单的jquery插件的相关文章

图片延迟加载并等比缩放,一个简单的JQuery插件

使用方法: $(".viewArea img").zoom({height:74,width:103}); (function($){    $.fn.zoom = function(settings){                //一些默认配置:                settings = $.extend({                    height:0,                    width:0,                    load

编写一个简单的Jquery插件

1.实现内容 定义一个简单的jquery插件,alert传递进来的参数 2.插件js文件(jquery.showplugin.js) (function ($) { //定义插件中的方法 var methods = { //Object showName: function (name) { alert('Name:' + name); }, showAge: function (age) { alert('Age' + age); } }; //method方法名 $.fn.showplugi

一个简单的jQuery插件ajaxfileupload实现ajax上传文件例子

页面代码:   <html>     <!-- 引入相关的js文件,相对路径  -->     <script type="text/javascript" src="js/jquery.js"></script>       <script type="text/javascript" src="js/ajaxfileupload.js"></script&g

写了一个简单的jquery插件(初恋啊)

用了好久的jquery了,却没有写过插件,今天研究了一个别人的插件和一些文章,总算搞清楚了jquery插件一些写法, 代码写了一个div当鼠标事件发生时的宽高变化情况,基础,代码基础,基础好了,才能研究深入的东西. 1 (function(jQuery){ 2 /* 3 * 插件应该返回一个JQuery对象,以便保证插件的可链式操作. 4 * JQuery插件的机制:jQuery提供了2个用于扩展jQuery功能的方法 5 * jQuery.fn.extend() 6 * jQuery.exte

转:一个简单的jQuery插件ajaxfileupload实现ajax上传文件例子

页面代码: <html>    <!-- 引入相关的js文件,相对路径  -->    <script type="text/javascript" src="js/jquery.js"></script>      <script type="text/javascript" src="js/ajaxfileupload.js"></script> &l

最简单的jQuery插件

<script src="./jquery-1.7.1.min.js"></script><script>;(function($,undefined){ $.fn.abcabc=function() { console.log($(this).val()); };})(jQuery);$(document).ready(function(){ $('#b1').on('click',function() { $('#t1').abcabc(); }

自己封装的一些简单的jQuery插件

俗话说的好:温故而知新,可以为师矣! 学习是一个人一辈子的事情.于是乎趁着今天休息,回顾了一些知识点,可能做的不够完美,请多多指教. /** * Created by Administrator on 2017/5/6. */ /** * 格式化日期 * @param dt 日期对象 * @returns {string} 返回值是格式化的字符串日期 */function getDates(dt) { var str = "";//存储时间的字符串 //获取年 var year = d

10条建议帮助你创建更好的jQuery插件

本文总结了帮助你创建更好jQuery插件的10条建议.分享给大家供大家参考.具体说明如下: 在开发过很多 jQuery 插件以后,我慢慢的摸索出了一套开发jQuery插件比较标准的结构和模式.这样我就可以 copy & paste 大部分的代码结构,只要专注最主要的逻辑代码就行了.使用相同的设计模式和架构也让修复bug或者二次开发更容易.一套经过验证的架构可以保证我的插件不出大的问题,不论插件简单还是复杂.我在这里分享10条我总结的经验. 1. 把你的代码全部放在闭包里面 这是我用的最多的一条.

【最新】2015年7月之15个最新jQuery插件

Hello,一个激动人心的好消息,现在我为大家整理最近7月发布的jQuery插件. 如果你熟悉任何下面列出的插件,请分享你的反馈与我们的读者,或如果你知道哪一个我们没有收录,那么请与我们分享在下面的评论部分. 我们希望你会发现这个列表下面这个列表对您很有用. 1. 固定表头 固定表头是一个jQuery塞进任何有效的表创建固定表头表标记了. 2. Stackgrid.adem.js stackgrid.adem.js 是一个非常快速和简单的JavaScript插件,帮助你创建一个动态级联网格 3.