• jQuery插件的开发注意事项


    jQuery插件的开发包括两种:

    一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法。jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级别的插件开发,即给jQuery对象添加方法。下面就两种函数的开发做详细的说明。

    1、类级别的插件开发(这种对所有的jquery对象都能使用,也就是说标签a、ul、div、li等这些DOM的jquery对象都可以使用这些方法

    类级别的插件开发最直接的理解就是给jQuery类添加类方法,可以理解为添加静态方法。典型的例子就是$.AJAX()这个函数,将函数定义于jQuery的命名空间中。
     介绍最保险的一种方法:
          
    使用命名空间

    虽然在jQuery命名空间中,我们禁止使用了大量的javaScript函数名和变量名。但是仍然不可避免某些函数或变量名将于其他jQuery插件冲突,因此我们习惯将一些方法封装到另一个自定义的命名空间。

    Java代码  收藏代码
    1. jQuery.myPlugin          
    2. foo:function()          
    3. alert('This is test. This is only test.');          
    4. },          
    5. bar:function(param)          
    6. alert('This function takes parameter, which is "' param '".');    
    7.         
    8. };  
    9. 采用命名空间的函数仍然是全局函数,调用时采用的方法:  
    10. $.myPlugin.foo();         
    11. $.myPlugin.bar('baz');  

     

    通过这个技巧(使用独立的插件名),我们可以避免命名空间内函数的冲突。

    2、对象级别的插件开发(这种只针对某一种html标签对象,即在使用时还得$("#div1")这样来获取该html的jquery对象再调用此插件中的方法

    对象级别的插件开发需要如下的两种形式:、

    形式1  

    Java代码  收藏代码
    1. (function($){     
    2. $.fn.extend({     
    3. pluginName:function(opt,callback){     
    4.           // Our plugin implementation code goes here.       
    5.     
    6. })     
    7. })(jQuery);     

    形式2

     

    Java代码  收藏代码
    1. (function($)       
    2. $.fn.pluginName function()     
    3.      // Our plugin implementation code goes here.     
    4. };     
    5. })(jQuery);      
           上面定义了一个jQuery函数,形参是$,函数定义完成之后,jQuery这个实参传递进去.立即调用执行。这样的好处是,我们在写jQuery插件时,也可以使用$这个别名,而不会与prototype引起冲突.

    3、总结

    jQuery为开发插件提拱了两个方法,分别是:

    jQuery.fn.extend(object);  jQuery对象添加方法。
    jQuery.extend(object);  
    为扩展jQuery类本身.为类添加新的方法。

    3.1 jQuery.fn.extend(object);

    fn 是什么东西呢。查看jQuery代码,就不难发现。

    jQuery.fn = jQuery.prototype = {  

    init: function( selector, context ) {//....   

    //......  

    };   

    原来 jQuery.fn = jQuery.prototype.prototype肯定不会陌生啦。虽然 javascript 没有明确的类的概念,但是用类来理解它,会更方便。jQuery便是一个封装得非常好的类,比如我们用 语句 $("#btn1") 会生成一个 jQuery类的实例。

    jQuery.fn.extend(object); jQuery.prototype进得扩展,就是为jQuery类添加成员函数jQuery类的实例可以使用这个成员函数

    比如我们要开发一个插件,做一个特殊的编辑框,当它被点击时,便alert 当前编辑框里的内容。可以这么做:

    $.fn.extend({        

         alertWhileClick:function(){       

             $(this).click(function(){      

                  alert($(this).val());       

              });       

               

    });   

    $("#input1").alertWhileClick(); //页面上为:<input id="input1" type="text"/>

    $("#input1") 为一个jQuery实例,当它调用成员方法 alertWhileClick后,便实现了扩展,每次被点击时它会先弹出目前编辑里的内容。

    3.2 jQuery.extend(object); 

    jQuery类添加添加类方法,可以理解为添加静态方法。如:

    $.extend({  

        add:function(a,b){return a+b;}  

    });  

    便为 jQuery 添加一个为 add 的 静态方法,之后便可以在引入 jQuery 的地方,使用这个方法了,$.add(3,4); //return 7

    链接地址:http://www.iteye.com/topic/545971
  • 相关阅读:
    Android Studio 个性化设置
    显示出eclipse文件层次
    2014在百度之星资格赛的第四个冠军Labyrinth
    android在单身的对象和一些数据的问题被释放
    Windows Server 2008 网管数据采集 努力做“日拱一卒“
    【 D3.js 入门系列 --- 9.1 】 生产饼图
    Android监视返回键
    JavaScript总结一下--创建对象
    PS多形式的部分之间复制“笨办法”
    PHP图片等比缩放,并添加Logo水印特定代码和盯
  • 原文地址:https://www.cnblogs.com/cnsec/p/11515927.html
Copyright © 2020-2023  润新知