javascript - Sencha Touch : Can't add listener to Map. 请帮忙?

标签 javascript html mobile sencha-touch extjs

在用标记解决了我的问题后,我遇到了另一个问题。这次,在使用 map 创建面板后,我无法添加监听器(使用 onaddListener 方法)。

任何帮助将不胜感激。代码如下:

Ext.setup({
...
onReady: function() {

    var TopBar, Tabs, MapHome, Viewport, Homecard, Nearbycard, updateNearby;

    /* 
     *      HOME
     */
    var markersHome = [];
    MapHome = new Ext.Map({
        id: "maphome",
        title: 'Map',
        useCurrentLocation: true,
        listeners: {
            centerchange: function(comp, map){
                deleteOverlays(markersHome); //defined on another file
                addMarker(markersHome,map.center); //defined on another file
                showOverlays(markersHome,map); //defined on another file
            }
       },
        mapOptions : {
            mapTypeControl : false,
            navigationControl : false,
            streetViewControl : false,
            backgroundColor: 'transparent',
            disableDoubleClickZoom: true,
            zoom: 17,
            draggable: false,
            keyboardShortcuts: false,
            scrollwheel: false,
            mapTypeId: google.maps.MapTypeId.HYBRID
       }
    });


    Homecard = new Ext.Panel({
        title: "home",
        id: "homecard",
        iconCls: "home",
        items: [MapHome]
    });

    /* 
     *      NEARBY
     */
    Nearby = new Ext.List({
        scroll: 'vertical',
        height: '100%',
        styleHtml: true,
        store: new Ext.data.Store({
            model: 'Places', //defined on another file
            sorters: 'title',
            data: []
        }),
        itemTpl:['<div class="nearby-item" id="{id}">',
                    '<img alt="{title}" src="{imageUrl}" />',
                    '<h2>{title}</h2>',
                    '<p>{excerpt}</p>',
                '</div>']
    });

    Nearbycard = new Ext.Panel({
        fullscreen: true,
        iconCls: "list",
        title: "nearby",
        id: "nearbycard",
        items: [Nearby]
    });

    updateNearby = function() {
        console.log('updating!'); //debug purposes
        }
    MapHome.on('locationupdate',updateNearby); // <-- Here is the problem



    /*
     *      MAIN
     */

    TopBar = new Ext.Toolbar({
        dock: 'top',
        xtype: "toolbar",
        title: "<img class='titleLogo' src='css/images/logo.png' />",
        items: [

            { xtype: 'spacer' },
            {
                iconCls: 'settings9',
                iconMask: true,
                text: 'options'
            }
        ]
    });

    Tabs = new Ext.TabPanel({
        id: 'tabs',
        //fullscreen:true,
        dock: 'bottom',
        flex: 1,
        tabBar: {
            dock: 'bottom',
            layout: {
                pack: 'center'
            }
        },
        items: [ Homecard, Nearbycard ]
    });

    Viewport = new Ext.Panel({
        fullscreen:true,
        layout:{type:'vbox',align: 'stretch'},
        ui:'dark',
        items: [TopBar,Tabs],
    });
 }
});

我在使用 MapHome.on 代码时不断收到此错误:

Uncaught TypeError: Cannot read property 'element' of undefined

最佳答案

我觉得应该是

MapHome.map.on(……………………);

看看是否有效。如果我不知道这里,我会为您粘贴完美的代码:)

关于javascript - Sencha Touch : Can't add listener to Map. 请帮忙?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6946916/

相关文章:

javascript - 我如何单独获取 li 文本而不是内部 HTML

javascript - 强制地址栏显示在移动版 Chrome 应用中

android - 在桌面上查看移动网站

html - 需要帮助使网站响应

javascript - 使用 jQuery 获取表单中的所有输入、选择和按钮及其订单号

javascript - 在 ExpressJS 中向文件路径添加参数

javascript - 滚动/缩放 pixi.js Canvas

javascript - 尝试将 SVG 签名转换为光栅图像

html - 按钮不适用于 .pull-left (Bootstrap)

javascript - knockout - 如何订阅多个下拉菜单(选择)并绑定(bind)到模型