Date: 八月 31st, 2011
Cate: jquery, 原创作品
Tags: , ,  

另类插件王

将所有jquery插件,都按该方式开发。将节约不少文件,而且调用方便。测试方便。下面,让我们来看一下,如何去实现。不多说,看CODE:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
var KB = function(b) {
	function m(z, w) {
		alert(z.toUpperCase() + ":\n\n" + w)
	}
 
	var d = {}, C = {
		widgets : {},
		views : {},
		lib : {
			isActive : function(z) {
				return d[z] === true
			},
			message : function(z, w) {
				m("message", z, w)
			},
			error : function(z, w) {
				m("error", z, w)
			},
			success : function(z, w) {
				m("success", z, w)
			},
			notify : function(z, w) {
				m("notify", z, w)
			},
			confirm : function(z, w) {
				m("confirm", z, w)
			},
			refresh : function() {
				window.location.reload()
			},
			redirect : function(z) {
				window.location = z
			}
		},
		init : function() {
			f = C.lib;
			b.each(KB.widgets, function(z, w) {
				d["widgets." + z] = w.init()
			});
			b.each(KB.views, function(z, w) {
				d["views." + z] = w.init()
			});
		}
	};
	return C
}(jQuery);
 
jQuery(document).ready(KB.init);

如何根据上面的内容写插件,下面我写一个tabs切换的插件,只需要绑定特定的css class类名就行:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//  TAB滑动门事件
//
//  按下面的格式书写html内容,将自动实现滑动门事件,默认触发事件为 mouserover
//  修改其它事件,如点击滑动: KB.views.tabs.config = {'event': 'click'};
//
//  <ul class="tab-holder">
//      <li class="on">选中状态</li>
//      <li>未中状态</li>
//  </ul>
//
//  <div class="bd">
//      <div class="tab-panel">选中状态</div>
//      <div class="tab-panel" style="display:none;">未中状态</div>
//  </div>
KB.views.tabs = function(b) {
	var p = {};
	var w = {
		event : 'click'  // 默认事件名称
	};
	return p = {
		config : {},
		init : function() {
			var D = $("ul.tab-holder li");
			if(D.size() == 0)
				return false;
			b.extend(w, p.config);
			D.bind(w.event, function() {
				$(this).addClass('on').siblings().removeClass('on');
				$('.bd .tab-panel').eq($('.tab-holder li').index(this)).show().siblings().hide();
			})
		}
	}
}(jQuery);

简单吧,只需要按上上面的风格书写的HTML,即能生成tabs切换样式。而且可以自定义切换事件。默认为click事件。