extjs 如何在 Sencha Touch中的GoogleMap上添加触摸并保持svg上的事件

7kjnsjlb  于 2022-11-05  发布在  Go
关注(0)|答案(1)|浏览(196)

我在 Sencha Touch应用程序中有一个GoogleMap,我在上面绘制了许多SVG元素。
现在,我想在每个SVG元素上添加触摸并按住(意味着当用户触摸并按住SVG元素上的图形超过1.5秒时,将触发此操作),当事件被触发时,我想弹出一个与所单击的SVG元素关联的信息对话框。
我试过:外部实用程序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");
        }

    });

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

gev0vcfq

gev0vcfq1#

touchstart和touchend事件都有参数。其中一个参数是touch details(arguments[0])。您可以使用类似以下的内容:

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

相关问题