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