Я столкнулся с той же проблемой с YUI3.Никогда не мог понять это.Если бы я мог перезапустить проект, я бы пошел с YUI2.Существует гораздо больше документации по YUI2, не говоря уже о том, что tabview все еще находится в бета-версии для v3.
При этом я обошел его, используя следующий код:
var Addable = function(config) {
Addable.superclass.constructor.apply(this, arguments);
};
Addable.NAME = 'addableTabs';
Addable.NS = 'addable';
Y.extend(Addable, Y.Plugin.Base, {
ADD_TEMPLATE: '<li class="yui3-tab" title="Add Your Own Custom Tab!">' +
'<a class="yui3-tab-label yui3-tab-add">+</a></li>',
initializer: function(config) {
var tabview = this.get('host');
tabview.after('render', this.afterRender, this);
tabview.get('contentBox')
.delegate('click', this.onAddClick, '.yui3-tab-add', this);
},
getTabInput: function() {
var tabview = this.get('host');
return {
label: window.prompt('What do you want to call this tab?:', 'foo'),
content: window.prompt('Page Url. Replace foo.com with whatever page you want loaded.', '<iframe src="http://www.foo.com" width="100%" height="850px" frameborder="0"></iframe>'),
index: Number(window.prompt('What tab number would you like this to be (0 = first):', tabview.size()))
}
},
afterRender: function(e) {
var tabview = this.get('host');
tabview.get('contentBox').one('> ul').append(this.ADD_TEMPLATE);
},
onAddClick: function(e) {
e.stopPropagation();
var tabview = this.get('host'),
input = this.getTabInput();
tabview.add(input, input.index);
}
});