فرق گذاشتن بین event های dblclick و click روی نقشه

پرسیده شده
فعالیت 1168 روز پیش
دیده شده 645 بار
1

سلام من نقشه رو جوری طراحی کردم که وقتی روش کلیک بشه یه دایره بکشه و تموم مکان های ثبت شده رو توی اون دایره نشون بده و event دابل کلیک رو ست کردم برای افزودن مکان و باز کردن مدال ولی الان مشکل اینه که event کلیک اجرا میشه و به دابل کلیک نمیرسه و مانعش میشه سوالم اینه که راه حلی وجود داره که بشه یه تاخیری ایجاد کرد تا کاربر بتونه دابل کلیک کنه و event کلیک جلوشو نگیره؟

خیلی گشتم و نتونستم راه حلی پیدا کنم خیلی ممنون

فایل پیوست

محمد محمدی
محمد محمدی

23 بهمن 99

2
حذف شده

سلام و احترام

میتونید از setTimeOut استفاده کنید و یه زمان براش تعیین کنید که توی مثال پایین نوشته 200 میلی ثانیه (برای click)، ینی بعد از 200 میلی ثانیه اون event اونجا قابل اجرا شدنه

map.on('click', function(event) {
  if (_dblClickTimer !== null) {
    return;
  }
  _dblClickTimer = setTimeout(() => {

    // real 'click' event handler here

    _dblClickTimer = null;
  }, 200);
})
.on("dblclick", function() {
  clearTimeout(_dblClickTimer);
  _dblClickTimer = null;

  // real 'dblclick' handler here (if any). Do not add anything to just have the default zoom behavior
})

حالا یه تابع دیگه استفاده شده به اسم clearTimeOut این تابع جلوگیری میکنه از اجرای event بالایی که click بود. 

حالا شما میتونید طبق چیزی که میخواید این کد رو شخصی سازی کنید و ازش استفاده کنید

فایل پیوست

امیر صالحی

توسط

امیر صالحی

24 بهمن 99

0
حذف شده

سلام کار نکرد متاسفانه ارور میده یه نگاهی بهش بندازین ممنون

فایل پیوست
photos.zip
223.07 KB

محمد محمدی

توسط

محمد محمدی

26 بهمن 99