Laut der offiziellen Erklärung von Baidu Maps können die folgenden 4 Ereignisse auf der mobilen H5-Seite überwacht werden:
Touchstart, Touchmove, Touchend, Longpress
Und wenn das Klickereignis auf der Karte überwacht wird, wird der Code in diesem Ereignis nicht auf dem mobilen Endgerät ausgeführt.
Als ich zuvor eine Anforderung gestellt habe, habe ich das Touchend-Ereignis für die Karte überwacht. Ich hätte nie gedacht, dass der Code in Touchend auch ausgeführt werden würde, wenn ich die Karte ziehe. Um dieses Problem zu lösen, müssen wir also ein Tap-Ereignis wie das in Zepto simulieren.
Mein Code ist:
function initMap(baseData) { var mp = new BMap.Map('map'); var point = new BMap.Point( baseData.data.gardenLongitude, baseData.data.gardenLatitude(point, 15); / Touch-Objektinformationen speichern var obj = {}; mp.addEventListener('touchstart', function (e) { obj.e = e.changedTouches ? e.changedTouches[0] : e; obj.target = e.target; obj.X = obj.e.pageY ; }); mp.addEventListener('touchend', function (e) { obj.e = e.changedTouches ? e.changedTouches[0] : e; if (obj.target === e.target && // Wenn es größer als 750 ist, können Sie das Wachstum sehen, indem Sie drücken ((Date.now() - obj.time) < 750) && // Wenden Sie den Satz des Pythagoras an um zu beurteilen, ob der Touchstart-Punkt erreicht Wenn die Touchend-Punkte weniger als 15 sind, kann dies als angeklickte Karte angesehen werden (Math.sqrt(Math.pow(obj.X - obj.e.pageX, 2) + Math. pow(obj.Y - obj.e.pageY, 2)) < 15) ) { // Die Karte wird angeklickt, einige Operationen ausführen doSomething( } });
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist. Ich hoffe auch, dass jeder das VeVb Wulin Network unterstützt.