Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery on 'double click' event (dblclick for mobile)

I have the following jquery event handling function:

$('.target').on('dblclick', function() {     //respond to double click event }); 

My issue is that this event handler doesn't work on touch devices (iPhone, iPad...). Can anyone recommend a reliable alternative to dblclick that works on touch devices and still allows comfortable double click use on full size devices?

like image 706
JRulle Avatar asked Dec 19 '14 06:12

JRulle


People also ask

How can double click event in jQuery?

The dblclick() is an inbuilt method in jQuery which is used to trigger the double-click event to occur. This method occurs when the selected element will be double clicked. Syntax: $(selector).

How do you double click an event?

The dblclick event fires when a pointing device button (such as a mouse's primary button) is double-clicked; that is, when it's rapidly clicked twice on a single element within a very short span of time. dblclick fires after two click events (and by extension, after two pairs of mousedown and mouseup events).

How do I disable double click event?

dblclick(function(e){ e. preventDefault(); }); }); Above jQuery code will disable double click event for all the controls on the webpage.


1 Answers

I ended up building a custom double click function that will work on both mobile and desktop:

var touchtime = 0;  $(".target").on("click", function() {      if (touchtime == 0) {          // set first click          touchtime = new Date().getTime();      } else {          // compare first click to this click and see if they occurred within double click threshold          if (((new Date().getTime()) - touchtime) < 800) {              // double click occurred              alert("double clicked");              touchtime = 0;          } else {              // not a double click so set as a new first click              touchtime = new Date().getTime();          }      }  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>  <div class="target">Double click me</div>

Alternatively, here is the JSfiddle Demo.

like image 117
JRulle Avatar answered Oct 09 '22 09:10

JRulle