0

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

4

2 回答 2

0

Write this in window where button is

Ti.App.fireEvent('customEvent', nil); 

And this in which window is to be closed

Ti.App.addEventListener('customEvent', function()
{
   window.close();
});
于 2013-10-28T07:33:15.997 回答
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 方法时,它会关闭窗口。

我已经试过了,它会工作的。

希望对你有帮助

于 2013-10-27T14:42:58.523 回答