我通过这种方式创建了一个tabview:
var tabview;
var Y = YUI({ insertBefore: 'my_css' });
Y.use('tabview', function (Y) {
tabview = new Y.TabView({
children: [{
label: 'Suche',
content: "<div id=\"tab1\"> </div>"
}, {
label: 'Objekt-Liste',
content: "<div id=\"tab2\"> </div>"
}, {
label: 'Objekt-Detail',
content: "<div id=\"tab3\"> </div>"
}]
});
tabview.item(1).disable().on('selectedChange', function () {
if (boolTab1) {
return true;
} else {
return false;
}
});
tabview.item(2).disable().on('selectedChange', function () {
if (boolTab2) {
return true;
} else {
return false;
}
});
tabview.render('#tabs');
});
现在我想从外面访问我的tabview对象。例如。在加载时,此函数被称为:
function init() {
tabview.deselectAll();
tabview.selectChild(0);
this.name = "";
this.value = "";
boolTab1 = false;
boolTab2 = false;
tabview.item(1).disable();
tabview.item(2).disable();
requestSuche(this);
}
所以,这适用于FF完美无缺。但是,我测试的所有其他浏览器都不知道init()函数中的tabview对象。有趣的一点;在Firefox中它也可以在我删除顶部的'var tabview'时工作。如何从其他js函数中正确访问我的tabview?
答案 0 :(得分:0)
好的,问题是init()函数是在创建tabview之前调用的body的onload函数。将init()函数移动到我的tabview代码块中解决了这个问题。