如何从Titanium Appcelerator中的另一个窗口(JS file2)单击事件关闭窗口(JS file1)

时间:2013-10-26 15:41:05

标签: titanium titanium-mobile

我使用Titanium appcelerator创建了一个App。这里我有3个JS文件,每个文件都有单独的“窗口”。当我点击第三个JS文件中的一个按钮时,是否可以关闭第二个JS文件的“窗口”。 我已经通过将第二个窗口名称传递给第三个JS文件&然后在按钮点击事件上关闭它,但它没有用!

2 个答案:

答案 0 :(得分:0)

您可以通过简单的方式完成此操作。请尝试以下代码。

我假设您目前处于第二个窗口

<强> win2.js

var win2 = Ti.UI.createWindow({
    backgroundColor : '#123456'
});

var btnNewWindow = Ti.UI.createButton({
    title   : 'Open new window'
});

btnNewWindow.addEventListener('click', function(){

    var win3 = Ti.UI.createWindow({
        backgroundColor : '#abcdef',
        _previousWindow : Ti.UI.currentWindow,
        url     : 'win3.js' 
    });

    win3.open();
});

win2.add(btnNewWindow);
win2.open();

<强> win3.js

var win3 = Ti.UI.currentWindow;

var btnClosePrevious = Ti.UI.createButton({
    title   : 'Close previous Window'
});

btnClosePrevious.addEventListener('click', function(){

    win3._previousWindow.close();
});

win3.add(btnClosePrevious);

这里我已经将前一个窗口作为参数而不是之前窗口的名称传递。它是一个窗口对象,当你调用previousWindow的close方法时,它将关闭窗口。

我试过了,它会起作用。

希望它能帮到你

答案 1 :(得分:0)

在按钮为

的窗口中写下此内容
Ti.App.fireEvent('customEvent', nil); 

这将关闭哪个窗口

Ti.App.addEventListener('customEvent', function()
{
   window.close();
});