另类插件王
将所有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事件。
