我是钛应用程序的新手,我想在图像点击上加载js但我得到'未被捕获的类型错误无法调用方法'打开'未定义'错误。
app.js
Ti.include("/core/index.js");
index.js
var win = Ti.UI.createWindow({
title: 'MapApp',
layout: 'vertical',
backgroundColor: '#ffffff'
});
var home=Ti.UI.createImageView({
image:'home.png',
height : 130,
width : 130,
});
var about=Ti.UI.createImageView({
image:'about.png',
height : 130,
width : 130
});
var rss=Ti.UI.createImageView({
image:'rss.png',
height : 130,
width : 130
});
var contact=Ti.UI.createImageView({
image:'contact.png',
height : 130,
width : 130
});
home.addEventListener('click', function(e) {
var newWin = Ti.UI.createWindow({
url : 'map.js',
title : 'title',
tabBarHidden : true,
barColor : '#000000',
});
newWin.open({
animation:true
});
});
win.add(home);
win.add(about);
win.add(rss);
win.add(contact);
win.open();
map.js
var globals = require("globals");
(function(){
var config = require("Config"),
AppWindow, LocationManager, locationsHandler;
globals.theme = require("../themes/" + config.theme);
LocationManager = require("LocationManager");
Titanium.UI.backgroundColor = globals.theme.Global.backgroundColor;
locationsHandler = function(e){
AppWindow = require("../ui/AppWindow").create();
AppWindow.open();
Ti.App.removeEventListener(
LocationManager.events.LOCATIONS_READY,
locationsHandler
);
};
Ti.App.addEventListener(
LocationManager.events.LOCATIONS_READY,
locationsHandler
);
// Load locations
LocationManager.load();
})();
我搜索了很多,但没有得到任何回复,map.js中的代码有任何问题,因为我从app.js替换了购买主题的代码。
答案 0 :(得分:1)
您可以使用Event fire和事件监听器来实现此目的,在我看来,这也是明智之举。注册均匀后,在单击图像时触发它。当事件被触发时,您注册的事件将听到它并将加载您关注的js然后您可以从那里获取它。
Here是可以帮助您实现目标的链接。您可以在应用程序或您正在使用的任何其他js中触发并注册该事件。 一旦你做对了,另一件事就很容易了。