1
if
(!hasdata.has) { 32 li = $(
'<li><a href="#page' + this.options.bindcode + '" data-toggle="tab">'
+ this.options.title +
'<span class="close">×</span></a></li>'
); 33 li.data(
"data"
, $.extend(true, {}, this.options)); 34 }
else
{ 35 li = hasdata.selector.off(
"click"
); 36 }; 37 li.prependTo(options.selector); 38 li.find(
"span.close"
).show().on(
"click"
,
function
() { 39 closetab(this); 40 }); 41 options.selector.children(
"li"
).not(li).removeClass(
"active"
); 42 li.addClass(
"active"
); 43 litop = _drop.options.selector.position().top, paneltop = options.selector.position().top; 44
if
(litop > paneltop) {
{ 50
var
pager = $(target).parent().attr(
"href"
); 51 $(target).closest(
"li"
).remove(); 52 options.selector.next().find(pager).remove(); 53
if
(options.selector.find(
"li.active"
).length <= 0) { 54 options.selector.find(
"li>a:first"
).tab(
"show"
); 55 }; 56 57
var
li = _drop.options.ulpanel.children(
"li:first"
); 58
if
(li.length <= 0)
return
; 59 li.find(
"span.close"
).show(); 60 _drop.options.selector.before(li); 61
if
(_drop.options.selector.position().top > options.selector.position().top) { 62 li.find(
"span.close"
).hide(); 63 _drop.options.ulpanel.append(li); 64
return
; 65 }; 66 li.off(
"click"
); 67
if
(_drop.options.ulpanel.children(
"li"
).length <= 0) { 68
_drop.options.selector.css({
"visibility"
:
"hidden"
}); 69 }; 70 }; 71 72
function
ishas(setting) {
var
option = { 92 bindcode: undefined, 93 url: undefined, 94 content:undefined 95 }; 96 97 this.init =
function
() { 98
var
content = $('<div
class
=
"tab-content"
></div>
'); 99 this.options.selector = content;100 options.selector.after(this.options.selector);101 };102 this.addContent = function (setting) {103 var page,iframe;104 $.extend(option, setting);105 hasdata = ishas(option);106 if (!hasdata.has) {107 page = $('
<div id=
"page' + option.bindcode + '"
class
=
"tab-pane"
></div>').data(
"data"
, $.extend(true, {}, option));108
if
(!option.url) {109 page.html(option.content);110 }
else
{111
iframe = $(
'<iframe src="' + option.url + '" onload="lwFW.windowHelper.autoiframe(this)" scrolling="no"></iframe>'
);112 page.append(iframe);113 };114 page.appendTo(this.options.selector);115 }
else
{116 page = hasdata.selector;117 };118 this.options.selector.children(
"div"
).not(page).removeClass(
"active"
);119 page.addClass(
"active"
);120 };121 122
function
ishas(setting) {
hasdata = { selector: $(this), has: true };130
return
false;131 };132 });133
return
hasdata;134 };135 };136 137
var
droplist =
function
() {138 this.options = {139 selector: undefined,140 ulpanel: undefined141 };142 143 this.init =
function
(panel) {144
var
li = $(
'<li class="dropdown pull-right"><a class="dropdown-toggle" data-toggle="dropdown" href="#"><b class="caret"></b></a><ul class="dropdown-menu"></ul></li>'
);145 this.options.selector = li.css({
"visibility"
:
"hidden"
});146 this.options.ulpanel = li.children(
"ul"
);147 this.options.selector.appendTo(panel);148 };149 150 this.addDropItem =
function
() {151 additem(this.options.selector, this.options.ulpanel);152 };153 154
function
additem(li, ul) {155
var
item = options.selector.children(
"li"
).not(li).last();156 li.css({
"visibility"
:
"visible"
});157
if
(item.length <= 0)
return
;158 item.find(
"span.close"
).hide();159 ul.append(item);160 item.one(
"click"
,
function
() {161 itemtarget(this, li, ul);162 });163 };164 165
function
itemtarget(target, selector, ulpanel) {166
var
item = options.selector.children(
"li"
).not(selector).last();167 $(target).find(
"span.close"
).show();168 $(target).prependTo(options.selector);169
if
(item.length <= 0)
return
;170
if
(selector.position().top > options.selector.position().top) {171 item.find(
"span.close"
).hide();172 ulpanel.append(item);173 };174
item.one(
"click"
,
function
() {175 itemtarget(this, selector, ulpanel);176 });177 };178 };179 180
function
init(setting) {181 $.extend(options, setting);182
if
(!options.selector) {183
return
;184 };185
if
(options.selector[0].tagName.toLowerCase() !=
"ul"
) {186
var
selector = $(
'<ul class="nav nav-tabs pagetabs"></ul>'
).appendTo(options.selector);187 options.selector = selector;188 };189
if
(!_drop) {190 _drop =
new
droplist();191 };192 _drop.init(options.selector);193 194
if
(!_tabcontent) {195 _tabcontent =
new
tabcontent();196 };197 _tabcontent.init();198
if
(!_newtab) {199 _newtab =
new
tab();200 };201 };
function
addtab(setting)
{
if
(!_newtab) {205
_newtab =
new
tab();206 };
_newtab.addtab(setting);208
if
(!_tabcontent) {209 _tabcontent =
new
tabcontent();210 };211
_tabcontent.addContent(setting);212
options.selector.find(
'li>a'
).filter(
'[href=#page'
+ setting.bindcode +
']'
).tab(
"show"
);213 };
return
{216 init:
function
(setting) {217 init(setting);218 },
addtab:
function
(setting) {219 addtab(setting);220 }221 };222 })
(jQuery);