写了一个jquery tabs插件,使用事件代理处理事件。
结构层是群里深度讨论得出的最好的结构。
< dt >< a >切换卡1</ a >< a >切换卡2</ a >< a >切换卡3</ a ></ dt > |
selector |
字符串 |
必须,容器的CSS选择符,最好符合我上面给出的结构,为一个dl元素。 |
tabsSelector |
字符串 |
可选,切换卡的通用选择符,最好符合我上面给出的结构,为一个dt元素。 |
panelsSelector |
字符串 |
可选,切换卡的通用选择符,最好符合我上面给出的结构,为一个dd元素。 |
selected |
数字 |
可选,默认选择中的切换卡的索引值。 |
select |
函数 |
可选,用于主动式触发事件。 |
click |
函数 |
可选,用于被动式触发事件。 |
remove |
函数 |
可选,移除某个切换卡与对应的面板。 |
- 切换卡1切换卡2切换卡3
- 内容1
- 内容2
- 内容3
<script src= "javascripts/jquery.js" ></script> |
return ( this instanceof $.tabs) ? this .init.apply( this ,arguments) : new $.tabs(obj) |
selectedClass: "dom_tabs_selected" , |
this .ui = $(obj.selector); |
this .tabs = this .ui.find( this .tabsSelector); |
this .panels = this .ui.find( this .panelsSelector); |
this .select( this .selected) |
this .tabs.live( "click" , function (){ |
var index = that.tabs.index( this ); |
that._switch.call(that,index) |
that.click.call( this ,index,that); |
this .tabs.removeClass( this .selectedClass).eq(index).addClass( this .selectedClass); |
this .panels.hide().eq(index).show(); |
select: function (index,callback){ |
callback && callback.call( this .tabs[index],index, this ); |
remove: function (index,callback){ |
this .tabs.eq(index).remove(); |
this .panels.eq(index).remove(); |
callback && callback.call( this .tabs[index],index, this ); |
click: function (index,instance){ |
alert(index+ " | " + this .tagName+ " | " +instance.panels.eq(index).text()) |
<dt><a>切换卡1</a><a>切换卡2</a><a>切换卡3</a></dt> |
(责任编辑:admin) |