在图像上加载js点击钛

时间:2014-07-15 11:36:48

标签: javascript android titanium

我是钛应用程序的新手,我想在图像点击上加载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替换了购买主题的代码。

1 个答案:

答案 0 :(得分:1)

您可以使用Event fire和事件监听器来实现此目的,在我看来,这也是明智之举。注册均匀后,在单击图像时触发它。当事件被触发时,您注册的事件将听到它并将加载您关注的js然后您可以从那里获取它。

Here是可以帮助您实现目标的链接。您可以在应用程序或您正在使用的任何其他js中触发并注册该事件。 一旦你做对了,另一件事就很容易了。