Недавно я тоже использовал это. Рассматривая код, он использует «cache.tabs» с $. Data , чтобы определить, следует ли кэшировать вкладку. Так что вам просто нужно взять элемент и установить $.data(a, "cache.tabs", false);
Я создал быстрое расширение, чтобы сделать это, предполагая, что вкладки статичны. Могут быть непредвиденные проблемы, и, безусловно, их можно исправить.
(function($) {
$.extend($.ui.tabs.prototype, {
_load25624: $.ui.tabs.prototype.load,
itemOptions: [],
load: function(index) {
index = this._getIndex(index);
var o = this.options,
a = this.anchors.eq(index)[0];
try {
if(o.itemOptions[index].cache === false)
$.data(a, "cache.tabs", false);
}
catch(e) { }
return this._load25624(index);
}
});
})(jQuery);
Как видите, я присваиваю старый load
метод _load25624
, просто какое-то случайное имя, сохраняя его в качестве члена объекта, и вызываю его в новом методе load
после определения, если вкладка должен быть кэширован. Использование:
$("#tabs").tabs({
cache: true,
itemOptions: [
{ cache: false }
]
});
Включит кэш для всего набора элементов и отключит кэш только для первого элемента (индекс 0).