/*扩展 jQuery.browser 的属性*/
if (!jQuery.browser) {
jQuery.browser = {};
}
jQuery.extend(jQuery.browser, {
/*检查浏览器是否支持CSS3*/
css3: (function () {
var css3Div = document.createElement('div');
if ('border-radius' in css3Div.style) {
css3Div.style['border-radius'] = '3px';
return css3Div.style['border-radius'] == '3px';
}
else {
return false;
}
})(),
/*检查浏览器是否支持HTML5*/
html5: (function () {
return !!document.createElement('canvas').getContext;
})()
});
jQuery.widget("ui.tabs", $.ui.tabs, {
addTab: function (options) {
var _self = this;
options = $.extend({
title: 'New Tab', //标题
content: '', //内容
id: 'tab_' + new Date().getTime(), //Id
enableClose: true, //是否允许关闭
activate: true //是否激活
}, options || {});
var id = "tabs-" + options.id;
var tab = this.element.find('.ui-tabs-nav li[aria-controls="' + id + '"]');
if (tab.length < 1) {
var _li = $('<li></li>').append($('<a></a>').attr('href', '#' + id).html(options.title));
this.element.find(".ui-tabs-nav").append(_li);
var _div = $('<div></div>');
_div.attr('id', id);
_div.append(options.content);
this.element.append(_div);
if (options.enableClose) {
var _closeBtn = $('<span class="ui-icon ui-icon-close" role="presentation" title="关闭"></span>').click(function () {
var _this = $(this);
var panelId = _li.remove().attr("aria-controls");
$("#" + panelId).remove();
if (_li.hasClass('ui-tabs-active')) {
_self.element.tabs('option', 'active', _self.element.find(".ui-tabs-nav li").length - 1);
}
});
_li.append(_closeBtn);
}
this.refresh();
if (options.activate) {
this._activate(this.element.find(".ui-tabs-nav li").length - 1);
}
//解决不支持css3的浏览器问题
if (!$.browser.css3) {
_div.height(this.element.innerHeight() - this.element.css('padding-top').replace('px', '') - this.element.find(".ui-tabs-nav").outerHeight(true) - Math.mul(_div.css('margin-top').replace('px', ''), 2));
}
} else if (options.activate) {
var activeIndex = this.element.find(".ui-tabs-nav li").index(tab);
this._activate(activeIndex);
}
}
});