Javascript 我如何在AngularJS中收听点击并保持?
我已经制作了一个time conter,它允许您通过单击按钮来增加或减少时间。然而,我希望当我点击并按住按钮时,时间的价值会不断攀升 因此,当前,如果每次单击“向上”按钮时都看到我的值,则该值会增加,但我希望这样,因此当我按住按钮时,该值会增加Javascript 我如何在AngularJS中收听点击并保持?,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我已经制作了一个time conter,它允许您通过单击按钮来增加或减少时间。然而,我希望当我点击并按住按钮时,时间的价值会不断攀升 因此,当前,如果每次单击“向上”按钮时都看到我的值,则该值会增加,但我希望这样,因此当我按住按钮时,该值会增加1,2,3,4,5,6,7,8,直到我松开按钮为止 我怎样才能做到这一点呢? <span class="time">{{ Time | timeFilter }}</span> <div class="btn-group bt
1,2,3,4,5,6,7,8
,直到我松开按钮为止
我怎样才能做到这一点呢?
<span class="time">{{ Time | timeFilter }}</span>
<div class="btn-group btn-group-sm">
<button class="btn btn-default" ng-mousedown='mouseDown()' ng-mouseup="mouseUp()">
<i class="fa fa-caret-up"></i>
</button>
<button class="btn btn-default" ng-click="Time = Time - 1">
<i class="fa fa-caret-down"></i>
</button>
</div>
这太好了,谢谢,只需要一个简单的问题。$interval是否仅仅导致函数保持循环?是的,在本例中每100毫秒一次。如果鼠标按钮按下时鼠标离开元素,当鼠标按钮返回时,间隔将不会取消。为了解决这个问题,您可以添加
ng mouseleave='mouseUp()'
有没有一个解决方案可以使用touch来实现这一点?我已经在联想移动设备上进行了测试,但不幸的是,这不起作用。请尝试触摸开始和触摸结束事件。
app.directive('time', function ($interval) {
return {
templateUrl: 'time.html',
restrict: 'E',
scope: {
Time: '=value'
},
link: function (scope, element, attrs) {
element.addClass('time');
var promise;
scope.mouseDown = function() {
if(promise){
$interval.cancel(promise);
}
promise = $interval(function () {
scope.Time++;
}, 100);
};
scope.mouseUp = function () {
$interval.cancel(promise);
promise = null;
};
}
};
});