如何从另一个js文件中使用setActiveTab

时间:2012-11-03 16:24:31

标签: javascript android url titanium

我正在尝试使用TabGroup,然后我想从另一个js文件使用函数setActiveTab但是有错误。

单击第三个选项卡中的button3时,未显示tabGroup。

这是在app.js

var tabGroup = Titanium.UI.createTabGroup()

var window1 = Titanium.UI.createWindow({
    backgroundColor: 'cyan'
})
var window2 = Titanium.UI.createWindow({
    backgroundColor: 'magenta'
})
var window3 = Titanium.UI.createWindow({
    backgroundColor: 'yellow',
    url: 'thirdTab.js'
})

var tab1 = Titanium.UI.createTab({
    //icon
    title: 'First tab',
    window: window1
})
var tab2 = Titanium.UI.createTab({
    title: 'Second tab',
    window: window2
})
var tab3 = Titanium.UI.createTab({
    title: 'Third tab',
    window: window3
})

tabGroup.addTab(tab1)
tabGroup.addTab(tab2)
tabGroup.addTab(tab3)
tabGroup.open()

var button1 = Titanium.UI.createButton({
    title: 'go to second',
    widgh: Titanium.UI.SIZE,
    height: Titanium.UI.SIZE
})
button1.addEventListener('click', function(e){
    tabGroup.setActiveTab(1);
})

var button2 = Titanium.UI.createButton({
    title: 'go to third',
    widgh: Titanium.UI.SIZE,
    height: Titanium.UI.SIZE
})
button2.addEventListener('click', function(e){
    tabGroup.setActiveTab(2);
})

window1.add(button1)
window2.add(button2)

这是在thirdTab.js

var window3 = Titanium.UI.currentWindow

var button3 = Titanium.UI.createButton({
    title: 'go to first',
    widgh: Titanium.UI.SIZE,
    height: Titanium.UI.SIZE
})
window3.add(button3)

button3.addEventListener('click', function(e){
    tabGroup.setActiveTab(0);
})

1 个答案:

答案 0 :(得分:0)

通过使用url:'thirdTab.js'加载第三个窗口,您将创建一个单独的JavaScript上下文。您可以像创建window1和window2一样创建window3,并且您可以访问相同的JavaScript变量。

为了更好地在Titanium中构建代码,您应该阅读CommonJS modules in Titanium。我喜欢的方法,因为它非常像Titanium,可能会是这样的:

app.js

....
var window3 = require('window3').createView(tabGroup);
....

window3.js

exports.createView = function(tabGroup) {
    var win = Ti.UI.createWindow({
        backgroundColor: 'yellow'
    });
    var button = Ti.UI.createButton({
        title: 'go to first',
        width: Ti.UI.SIZE, height: Ti.UI.SIZE
    });
    button.addEventListener('click', function(e){
        tabGroup.setActiveTab(0);
    });
    win.add(button);
    return win;
};

通过这种方式,您可以确切地知道传递的变量以及它们的使用位置。

希望这有帮助!