(function () { $.extend($.fn.tabs.methods, { getTabById: function(jq,id) { var t
(function () { $.extend($.fn.tabs.methods, { getTabById: function(jq,id) { var tabs = $.data(jq[0], 'tabs').tabs; for(var i=0; i<tabs.length; i++){ var tab = tabs[i]; if (tab.panel('options').id == id){ return tab; } } return null; }, selectById:function(jq,id) { return jq.each(function() { var state = $.data(this, 'tabs'); var opts = state.options; var tabs = state.tabs; var selectHis = state.selectHis; if (tabs.length == 0) {return;} var panel = $(this).tabs('getTabById',id); // get the panel to be activated if (!panel){return} var selected = $(this).tabs('getSelected'); if (selected){ if (panel[0] == selected[0]){return} $(this).tabs('unselect',$(this).tabs('getTabIndex',selected)); if (!selected.panel('options').closed){return} } panel.panel('open'); var title = panel.panel('options').title; // the panel title selectHis.push(title); // push select history var tab = panel.panel('options').tab; // get the tab object tab.addClass('tabs-selected'); // scroll the tab to center position if required. var wrap = $(this).find('>div.tabs-header>div.tabs-wrap'); var left = tab.position().left; var right = left + tab.outerWidth(); if (left < 0 || right > wrap.width()){ var deltaX = left - (wrap.width()-tab.width()) / 2; $(this).tabs('scrollBy', deltaX); } else { $(this).tabs('scrollBy', 0); } $(this).tabs('resize'); opts.onSelect.call(this, title, $(this).tabs('getTabIndex',panel)); }); }, existsById:function(jq,id){ return $(jq[0]).tabs('getTabById',id) != null; } });})(jQuery);
判断
var isOpen = $('#tabs').tabs('existsById', node.id); if (isOpen) { $('#tabs').tabs('selectById', node.id); var tab = $('#tabs').tabs('getTabById', node.id); tab.panel('refresh'); return; }