-1

Google マップの情報ウィンドウ ( https://developers.google.com/maps/documentation/javascript/examples/infowindow-simple ) にリンクまたはボタンを追加し、sencha touch で「タップ」イベントを処理しようとしています。コントローラ。コードが機能しません。基本的に私がやろうとしているのは、ネイティブ Javascript でイベントを発生させ、それをコントローラーでリッスンすることです。

ここに画像の説明を入力

ここでは、マーカーに情報ウィンドウを追加します。

        google.maps.event.addListener(marker, 'click', function() {

                    me.selectedMarker = marker;

                    // info window
                    var contentString = "'<div id='content'>"
                            + "<h1 id='firstHeading'>{0}</h1>"
                            + "<div id='bodyContent'>{1}</div>" +
                                    "<div id='detailLink' onClick=\"fireEvent(this, 'tap')\" style='text-decoration: underline'>" +
                                    "TAP ME TO OPEN THE DETAIL" +
                                    "</div>" +
                                    "</div>"

                    contentString = contentString.format(punto.label, punto.descBreve);

                    if (me.infowindow) {
                        me.infowindow.close();
                    }

                    me.infowindow = new google.maps.InfoWindow({
                                content : contentString
                            });

                    me.infowindow.open(me.getMap(), marker);

                });

私のindex.htmlのfireEvent関数は、例外なく実行されます:

function fireEvent(element, event) {

    if (document.createEventObject) {
        // dispatch for IE
        var evt = document.createEventObject();
        return element.fireEvent('on' + event, evt)
    } else {
        // dispatch for firefox + others
        var evt = document.createEvent("HTMLEvents");
        evt.initEvent(event, true, true); // event type,bubbling,cancelable
        return !element.dispatchEvent(evt);
    }
}

コントローラーのイベント ハンドラー (呼び出されることはありません)

    control : {
        '#detailLink' : {
            tap : function(){ alert('tapped')},
            click : function(){ alert('clicked')}
        }
    }

一度に表示される情報ウィンドウは 1 つだけです。

4

1 に答える 1