ITPub博客

首页 > IT职业 > IT生活 > jquery复习之路---常用插件

jquery复习之路---常用插件

IT生活 作者:choubou 时间:2021-09-09 09:06:26 0 删除 编辑

插件是以jquery的核心代码为基础,编写出符合一定规范的应用程序,并将程序进行打包,调用时,仅需要打包含该打包的js文件即可。
插件的调用:第一步在页面中导入包含插件的js文件(放在jq库文件之后);
自定义插件
封装jq插件分三种:1,封装方法插件;2,封装函数插件; 3,选择器插件(基本不用);

一,封装方法插件,开发插件的首选

封装一个方法插件实际是一个对象插件, 该类插件首先通过jQuery选择器获取对象,并为对象添加方法,然后将方法进行打包,封装成一个插件这种插件极易调,也很方便的使用jQuery中的选择器,因此成为开发插件的首选;
$(selector).方法插件();

二,封装函数插件

封装函数插件是一个类级别的插件,该插件的特点是能直接使用jQuery添加静态方法,并可以将函数置于jQuery命名空间中,如$.trim()和$.ajax()全局性的函数都是以内部插件的形式插入jQuery内核中;

三,插件的封装原则

jquery插件命名必须以jQuery.[插件名].js原则,以区分其他js文件,
1:如果是对象级别的插件,所有的方法必须依附于jquery.fn对象主体;
2:如果是类级别的插件,所有的方法都应依附于jquery对象;

在插件的内部,this代表的是jquery选择器所获取的对象,而非传统意义上的对象的引用;在插件内部的代码中可以使用this.each()遍历所有的元素;无论是对象级别的插件还是类级别的插件结尾处都应以:分号结束,否则在文件压缩时有错;在编写jquery插件代码中,使用jQuery不去使用$;
在编写对象插件时,使用jQuery.fn.extend()方法进行功能扩展;
在编写类级别插件,使用jQuery.extend()方法进行扩展;

四,对象级别插件的开发
1, 功能描述:在列表

    元素中,鼠标在表项li元素移动时,可以自定义其获取焦点(focus)时的背景颜色,即设置表项li元素选中时的背景颜色。
    2,框架搭建:新建一个js文件,命名为jquery.lifocuscolor.js;并在文件中使用$.fn.extend()完成框架的搭建;
;(function(jQuery){
        jQuery.fn.extend({

          "liFocusColor":function(param_value){

              //各种默认属性或者参数的设置
              var def_color = "#ccc";//默认获取焦点的颜色;
              var lst_color = "#fff";//默认丢失焦点的颜色;
               //如果设置的颜色不为空,则使用设置颜色,否则使用默认颜色
              param_value = (param_value == undefined) ? def_color : param_value;
              //遍历列表项
  • 中的全部元素 jQuery(this).find("li").each(function(){ //插件实现的代码 jQuery(this).on("mouseover",function(){ //获取鼠标焦点事件 jQuery(this).css("background-color",param_color) }) jQuery(this).on('mouseout',function(){ //失去鼠标焦点事件 jQuery(this).css("background-color",lst_color) }) }) return jQuery(this);//返回jQuery对象,保持链式操作; } }) })(jQuery);
  • 插件的调用

    
    $("#ul").liFocusColor();//调用自定义的插件
    //$("#ul").liFocusColor("red");传递一个颜色参数

    五,类级别插件的开发
    1,功能描述:新增两个类级别的全局函数,分别用于计算两个数之和与两个数只差,并将结果返回调用的页面中;
    2,框架搭建:新建一个js文件,命名为jquery.twoaddresult.js,并在文件中使用$.extend()方法完成框架的搭建;

    ;(function(jQuery){
           $.extend({
          "twoAddResult":function(){
            "addNum":function(pram_value1,pram_value2){
             //插件实现的代码
                //参数没有就默认为0
                pram_value1 = (pram_value1==undefined)? 0 : pram_value1;
                pram_value2 = (pram_value2==undefined)? 0 : pram_value2;
                var result = parseFloat(pram_value1)+parseFloat(pram_value2);
                return result;
            },
            "subNum":function(pram_value1,pram_value2){
                //参数没有就默认为0
                pram_value1 = (pram_value1==undefined)? 0 : pram_value1;
                pram_value2 = (pram_value2==undefined)? 0 : pram_value2;
                var result = parseFloat(pram_value1)-parseFloat(pram_value2);
                return result;
            }               
                        }
               })
    })(jQuery);

    插件的调用

    
    var addResult = $.addNum($("input[name='text1']").val(), $("input[name='text2']").val() );
    var subResult = $.subNum($("input[name='text3']").val(),
    $("input[name='text4']").val() );

    来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4548/viewspace-2799498/ ,如需转载,请注明出处,否则将追究法律责任。

    请登录后发表评论 登录
    全部评论

    注册时间:2019-10-08

    • 博文量
      175
    • 访问量
      10712