《锋利的jQuery》笔记:插件的使用和写法

前端开发 作者: 2024-08-20 19:55:02
jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进行操作,是最常见的一种插件。此类插件可以发挥出jQuery选择器的强大优势,有相当一部分

jQuery插件的种类

1、封装对象方法 

2、封装全局函数

3、选择器插件

jQuery插件的机制

编写jQuery插件的一些Tips

jQuery插件结构

;(function($){ 
    /*这里放插件代码,可以将$作为jQuery的别名*/ 
})(jQuery); 

封装jQuery对象方法插件实战

;(($){ 
    $.fn.extend({ 
        //这里写插件代码 
    }); 
})(jQuery); 
;(($){ 
    $.fn.extend({ 
        "color":(value){ 
            if(value==undefined){ 
                return this.css("color"); 
            } 
            else{ 
                ,value); 
            } 
        } 
    }); 
})(jQuery); 
;(插件代码 
        }, 
        "border":        }, 
        "background":        } 
    }); 
})(jQuery); 
;(($) {
    $.fn.extend({
        "alterBgColor":(options){
            设置默认值
            option=$.extend({
                odd:"odd"
            },options); 注意这个options 同上面的function(options)中的option是同一个对象

            隔行变色
            $("tbody>tr:even",this).addClass(option.even);
            $("tbody>tr:odd",1)">).addClass(option.odd);

            单击行变色
            $('tbody>tr',1)">this).click((){
                var hasSelected = $().hasClass(option.selected);
                $(this)[hasSelected?"removeClass":"addClass"](option.selected)
                .find(":checkbox").attr('checked',!hasSelected);
            });

            $("tbody>tr:has(:checked)",1)">).addClass(option.selected);
            this;  返回this,使方法可链
        }
    });
})(jQuery);
调用方法:
$("#table2").alterBgColor().find("th").css("font-size","18");

封装全局函数插件实战

;(($){ 
    $.extend({ 
        ltrim:(text){ 
                    }, 
        rtrim:        } 
    }); 
})(jQuery); 
;(return (text||"").replace(/^\s+/g,""); 
        },rtrim:return (text||"").replace(/\s+$/g,1)">); 
        } 
    }); 
})(jQuery); 

自定义选择器插件实战

gt:(a,i,m){
    return i > m[3]-0;
}
 (a,m){ 
    ... 
} 
  • m[0],以上面的$("div:gt(1)")这个例子来讲,是:gt(1)这部分。它是jQuery选择器进一步将要匹配的内容。
  • m[1],这里是选择器的引导符,匹配例子中的“:”,即冒号。并非只能使用“:”后面跟上选择器,用户还可以自定义其它的选择器引导符。
  • m[2],即例子中的gt,确定究竟是调用哪个选择器函数。
  • m[3],即例子中括号里的数字“1”,它非常有用,是编写选择器函数最重要的一个参数(m[3],在$("div:gl(1)")中即为括号里的数字“1”)。
  • m[4],上面的例子中没有体现出来,这个比较罕见。例如“div:l(ss(dd))”这样一个选择器中,m[4]就指向了(dd)这部分,主要是带括号的(dd),而不只是dd。同时要注意,此时的m[3]的值是ss(dd)而非ss。
;(($){ 
    $.extend($.expr[":"],{ 
        between:        } 
    }); 
})(jQuery); 
;(var temp=m[3].split(","); 
            return temp[0]-0<i&&i<temp[1]-0; 
        } 
    }); 
})(jQuery); 
<div id="con1">1</div>
="con2">2="con3">3script type="text/javascript">
$(function(){
    $("#con1).add(#con3).data(key10001);
    //定义一个新选择器
    $.expr[ : ]['newselector] = (elem) {        
        return !!$.data( elem,1)"> );
    };
    $(div:newselector).each((index,val){
        console.log(this.id); con1,con3
    })
});
script>
原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_65692.html