2017-01-10 7 views
2

단추를 얼마나 오래 누르고 있는지 알 수 있습니까? 즉, mousedown과 mouseup 이벤트의 차이점을 어떻게 찾을 수 있습니까? 나는 Javascript에 처음이고 각을 사용하여 처음이다. 이 문제에 도움이된다면버튼을 얼마나 오랫동안 누르고 있었는지 탐지하는 방법.

+2

가능한 속는? http://stackoverflow.com/questions/25180332/how-can-i-listen-for-a-click-and-hold-in-angularjs 편집 : 속아 넘어갈 수는 없지만 필요한 조각이 있습니다. –

+0

지시문을 작성하고 싶지 않습니다. 나는 단지 시간을 초 단위로 원해. – Sinscary

+0

@Sinscary : 아래에서 내 대답을 확인하십시오. – superUser

답변

4

ngMouseUpngMouseDown 지시문을 사용하여 아래에 표시된 것과 같이 시차를 계산할 수 있습니다.

희망 하시겠습니까?

angular.module('myApp', []) 
 

 
.controller('myCtrl', function ($scope){ 
 
    var timeStart, timeEnd; 
 

 
    $scope.mouseDown = function() { 
 
    timeStart = new Date(); 
 
    } 
 

 

 
    $scope.mouseUp = function() { 
 
    timeEnd = new Date(); 
 
    $scope.timeDiff = (timeEnd - timeStart)/1000; 
 
    } 
 
    
 
});
<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.2.23/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="myCtrl"> 
 
<button ng-mousedown='mouseDown()' ng-mouseup="mouseUp()">Click me and Hold</button> 
 
    <p ng-if="timeDiff"> You have clicked the button for <b>{{timeDiff}}</b> seconds</p> 
 
</div>

+0

감사합니다. Suzo. 실제로 나는 그것을 구현했다. 그렇지만 이것이 내가 찾고 있었던 것이다. 답에 덧붙이면, Math.round()로 시간을 반올림했습니다. – Sinscary

+1

오케이. 를 알아서 좋다. 방금 당신의 코멘트를보고 대답했습니다 :) – superUser

+0

확실한 형제. 내가 무엇인지 보자 :) – superUser