2017-01-10 6 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

個別の指令を作成する代わりに、ngMouseUpと​​指令を使用して、以下に示すように時差を計算することができます。

これはあなたが期待しているものです。

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

関連する問題