0

この方法でタブビューを作成しました:

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関数からタブビューに正しくアクセスするにはどうすればよいですか?

4

1 に答える 1

0

OK、問題は、 init() 関数が、タブビューが作成される前に呼び出された本体の onload 関数であることです。init() 関数をタブビューのコードブロックに移動すると、問題が解決しました。

于 2013-07-24T11:35:27.710 に答える