0

我通过这种方式创建了一个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?

4

1 回答 1

0

好的,问题是 init() 函数是在创建我的 tabview 之前调用的主体的 onload 函数。将 init() 函数移动到我的 tabview 代码块中解决了这个问题。

于 2013-07-24T11:35:27.710 回答