如何在 Sencha Touch 的 Google Map 上的 svg 上添加触摸和按住事件

Posted

技术标签:

【中文标题】如何在 Sencha Touch 的 Google Map 上的 svg 上添加触摸和按住事件【英文标题】:How to add touch and hold event on svg on Google Map in Sencha Touch 【发布时间】:2014-06-09 03:38:10 【问题描述】:

我的 Sencha Touch 应用中有一个 Google 地图,我在上面绘制了许多 SVG 元素。

现在我想在每个 SVG 元素上添加触摸并按住(意味着当用户在 SVG 元素上触摸并按住图形超过 1.5 秒时触发),当触发偶数时,我想要弹出与单击的 SVG 元素相关的信息对话框。

我试过了:Ext.util.TaPrepeater(不起作用)

  var startTime
      Ext.create('Ext.util.TapRepeater', 
            el: drawnElements[uniqueTrackID],
            listeners: 
                touchstart: function () 
                    startTime = new Date();
                ,
                touchend: function () 
                    var now = new Date();
                    if (now - startTime >= 1500)
                    
                        Ext.Msg.alert("haha");
                    
                
            
        );

还尝试直接在 SVG 上添加事件(也不起作用)

  drawnElements[uniqueTrackID].on('touchstart', function () 
        startTime = new Date();
    );

    drawnElements[uniqueTrackID].on('touchend', function () 
        var rightNow = new Date();
        if (rightNow - startTime >= 1500) 
            Ext.Msg.alert("haha");
        

    );

并找到非常有限的相关帖子。

【问题讨论】:

【参考方案1】:

touchstart 和 touchend 事件有参数。其中之一是触摸细节(参数 [0])。你可以使用这样的东西:

touchstart: function (details) 
                    userTime = details.touch.timeStamp;
                

【讨论】:

以上是关于如何在 Sencha Touch 的 Google Map 上的 svg 上添加触摸和按住事件的主要内容,如果未能解决你的问题,请参考以下文章

在 Sencha Touch MVC 中实现 Google Maps Directions

使用 Sencha Touch 时,Google 地图标记点击在 iPad 上不起作用

在 sencha touch 2 中加载外部 url

Sencha Touch 2:Google Maps Directions Route 不会显示

Sencha Touch Google Maps 标记监听器不工作

Sencha Touch 2 中的 iPhone 上的 Google Chrome 浏览器无法正常工作