2016-11-20 6 views
-1

ich habe Code-Bild zum Download:Doppelklick auf jQuery Mobile

<a href="$img" class="download-img" download><img src="$img"></a> 

und ich habe Funktion Doppelklick von mobilen Geräten zu überprüfen:

var touchtime = 0; 

$('.download-img').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(); 
     } 
    } 
}); 

, wie ich diesen 2 Teil Codes kommen kann, Download-Bild von Doppelklick, aber nicht einfach

+0

Statt "Join this 2 Teile von Codes" sind Sie stattdessen bedeutet, den Download zu verhindern, wenn es nur ein einziger Klick ist? – Taplar

Antwort

0

Hier ist, was ich gefunden habe. Obwohl auf jeden Fall in das Ereignis dblclick MrCode in seiner Antwort erwähnt überprüfen.

$('.download-img').on('click', function(e){ 
    var $link = $(this); 

    //if the time now minus the time stored on the link, or 0 if there is not one, is less than 800, it's valid 
    if (Date.now() - ($link.data('touchtime') || 0) < 800) { 
     console.log('double click'); 
    } else { 
     //time did not exist, or it exceeded the 800 threshold, set a new one 
     $link.data('touchtime', Date.now()); 
     //prevent the click 
     e.preventDefault(); 
    } 
}); 
0

Wenn Sie das Ereignisargument erfassen, können Sie e.preventDefault() aufrufen, wenn es ein einziger Klick ist.

$('.download-img').on('click', function(e) { 
    //        ^capture the event 
    if(touchtime == 0) { 
     //set first click 
     touchtime = new Date().getTime(); 
     e.preventDefault(); 
    } else { 
     ... 
    } 
}); 

könnten Sie auch das dblclick Ereignis verwenden, anstatt Ihre eigene Doppelklick Logik rollen.

+0

Wenn er die Doppelklick-Route gegangen wäre, müsste er dann noch den Prevent-Standard auf den einzelnen Klick binden? – Taplar