وفقًا للشرح الرسمي لخرائط Baidu، يمكن رصد الأحداث الأربعة التالية في صفحة H5 للجوال:
touchstart، touchmove، touchend، الضغط لفترة طويلة
وإذا تمت مراقبة حدث النقر على الخريطة، فلن يتم تنفيذ الكود الموجود في هذا الحدث على الجهاز المحمول.
عندما قمت بتقديم طلب من قبل، قمت بمراقبة حدث اللمس للخريطة، ولم أعتقد أبدًا أنه عندما قمت بسحب الخريطة، سيتم أيضًا تنفيذ الكود الموجود في اللمس. لذلك نحن بحاجة إلى محاكاة حدث النقر مثل الذي حدث في zepto لحل هذه المشكلة.
الكود الخاص بي هو:
وظيفة initMap(baseData) { var mp = new BMap.Map('map'); var point = new BMap.Point( baseData.data.gardenLongitude, baseData.data.gardenLatitude ); mp.centerAndZoom(point, 15); / حفظ معلومات كائن اللمس var obj = {}; mp.addEventListener('touchstart', function (e) { obj.e = e.changedTouches ? e.changedTouches[0] : e; obj.target = e.target; }); mp.addEventListener('touchend', function (e) { obj.e = e.changedTouches ? e.changedTouches[0] : e; if (obj.target === e.target && // إذا كان أكبر من 750، يمكنك رؤية النمو بالضغط على ((Date.now() - obj.time) < 750) && // تطبيق نظرية فيثاغورس للحكم، إذا وصلت نقطة اللمس إذا كانت نقاط اللمس أقل من 15، فيمكن اعتبارها خريطة يتم النقر عليها (Math.sqrt(Math.pow(obj.X - obj.e.pageX, 2) + Math. الأسرى (obj.Y - obj.e.pageY, 2)) < 15) ) { // تم النقر على الخريطة، وإجراء بعض العمليات doSomething() } });
ما ورد أعلاه هو المحتوى الكامل لهذه المقالة وآمل أن يكون مفيدًا لدراسة الجميع وآمل أيضًا أن يدعم الجميع شبكة VeVb Wulin.