本文實例講述了jQuery插件擴展測試方法。分享給大家供大家參考,具體如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JQquery擴展插件測試</title>
<script type = "text/javascript" src="jquery-1.7.2.min.js"> </script>
<style type = "text/css">
.a{
background:#ccc;
}
.b{
background:#555;
}
</style>
<script type = "text/javascript">
//1.對象級別的擴展 jQuery.fn是jQuery.prototype的別名
// 注意:在對象方法內,關鍵字this引用的是一個jQuery對象,但在每次調用的.each()方法中,this引用的是一個dom元素(所以each內部要用jQuery包裝this,而在return後面,直接調用jQuery對方法.each())
(function($){
$.fn.toggleClass = function(options){
return this.each(function(){
var opts = $.extend({},$.fn.toggleClass.defaults,options);
var $element = $(this);
if($element.hasClass(opts.class1)){
$element.removeClass(opts.class1).addClass(opts.class2);
}else if($element.hasClass(opts.class2)){
$element.removeClass(opts.class2).addClass(opts.class1);
}
})
}
$.fn.toggleClass.defaults = {
class1:"",
class2:""
}
$.fn.setBorder = function(){
return this.each(function(){
$(this).css("border","1px solid red");
})
}
})(jQuery);
$(function(){
var opts = {
class1:"a",
class2:"b"
}
$("h1").click(function(){
$("h1").toggleClass(opts).setBorder();
})
})
//2.類級別的擴展
//1).直接添加:為jQuery對象添加全局函數
jQuery.sum = function(array){
var total = 0;
jQuery.each(array,function(idx,num){
total += num;
})
return total;
}
//2).用extend添加:
jQuery.extend({
fn1:function(){},
fn2:function(){}
})
</script>
</head>
<body>
<h1 id = "h1" class = "a">JQuery擴展測試</h1>
</body>
</html>