码迷,mamicode.com
首页 > Web开发 > 详细

jQuery 插件开发

时间:2017-06-25 16:17:22      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:str   function   png   his   return   img   完整   size   创建   

jQuery 插件的实质, 就是给jQuery的原型prototype上增加方法
jQuery.prototype.syaHi = function(){
  console.log("hehe");
}

这样 jQuery对象就可以调用方法: #(document).sayHi();

jQuery == $ and prototype == fn
jQuery.prototype == $.fn

 

$(function(){    
    // 比如 重写下面的jQuery方法 改变jQuery对象的背景颜色 
    $("div").css("background", "red");
    
    $.fn.bgColor = function(color) {
        // this 指的jQuery对象, 将来谁调用bgColor方法, 随就是this
        this.css("background", color);
    }
    
    // 使用自定的jQuery方法改变背景颜色  this == $("div");
    $("div").bgColor("red");
});

 

那自定义的方法怎么提供给其他人或其他页面使用呢 ?
我们需要把自定义的方法写在单独的js文件中, 这样 只要别的页面引用了这个文件 就可以调用我们自定义的方法

创建 jQuery.bgColor.js

    $.fn.bgColor = function(color) {
        this.css("background", color);
    }

引用自定义js文件

<script src="jquery.js"></script>
<script src="jQuery.bgColor.js"> </script>

这样 在页面中就可以直接调用自定义方法了:
$(function(){
  // 使用自定的jQuery方法改变背景颜色
  $("div").bgColor("red");
});

但上面的自定方法有一个问题 通过自定的方法可以继续使用jQuery的链式编程吗
比如继续调用jQuery方法:
$("div").bgColor("red").width(400);

技术分享

 

这是因为我们自定义方法没有返回值, 所以默认返回值是undefined  

 $.fn.bgColor = function(color) {
        this.css("background", color);
    }
所以完整的自定义方法应该是
    $.fn.bgColor = function(color) {
        this.css("background", color);
        return this;
    }

这样就可以继续使用链式编程了 这也是jQuery链式编程的原理  return this

jQuery 插件开发

标签:str   function   png   his   return   img   完整   size   创建   

原文地址:http://www.cnblogs.com/zi-yao/p/7076912.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!