2016-07-21 5 views
1

Salut, j'ai suivi div:Détecter clic long sur tablette avec ng-clic ou jquery

angular.module("myApp", ['ngTouch']).controller("myController", function($scope) { 
 
    $scope.longClick = function() { 
 
    console.log('I was clicked long'); 
 
    } 
 
});
.longClick { 
 
    width: 200px; 
 
    height: 20px; 
 
    line-height: 20px; 
 
    color: white; 
 
    font-family: Arial; 
 
    background-color: grey; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-touch.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script> 
 

 

 
<div ng-app="myApp" ng-controller="myController" class="longClick" ng-click="longClick()">Click me long...</div>

je voudrais détecter sur la tablette, lorsque la div a été cliqué/touché avec un appui long et imprimer puis le texte dans la console. J'ai trouvé quelques réponses à ces questions mais tout ce que j'ai essayé n'a pas fonctionné. Des idées? Merci.

Répondre

1

Je vous ai écrit ce morceau de code, ça devrait faire l'affaire. Je prends essentiellement le temps de mousedown et le temps de mouseup et de les comparer

var start; 
 
$(window).mousedown(function(e) { 
 
    start = new Date().getTime(); 
 
    
 
}).mouseup(function(e) { 
 
    var end = new Date().getTime(); 
 
    var timeDiff = (end-start)/1000; 
 
    $('p').text(timeDiff + " seconds"); 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 
<div> 
 
    Click the result area 
 
</div> 
 
<p></p>

+0

Merci, cela fonctionne. – MrBuggy