From e6371cf7ae9bb272161ddb84f2fa7510fae2b494 Mon Sep 17 00:00:00 2001 From: mpuebla Date: Wed, 16 Oct 2019 12:20:50 -0300 Subject: [PATCH] Agregada nueva directiva. --- src/js/onMouseHold-directive.js | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/js/onMouseHold-directive.js diff --git a/src/js/onMouseHold-directive.js b/src/js/onMouseHold-directive.js new file mode 100644 index 0000000..5a75e7c --- /dev/null +++ b/src/js/onMouseHold-directive.js @@ -0,0 +1,34 @@ +angular.module('focaDirectivas') + .directive('onMouseHold', function ($parse, $interval) { + var stop; + + var dirDefObj = { + restrict: 'A', + scope: { method: '&onMouseHold' }, + link: function (scope, element, attrs) { + + var expressionHandler = scope.method(); + var actionInterval = (attrs.mouseHoldRepeat) ? attrs.mouseHoldRepeat : 500; + + var startAction = function () { + expressionHandler(); + stop = $interval(function () { + expressionHandler(); + }, actionInterval); + }; + + var stopAction = function () { + if (stop) { + $interval.cancel(stop); + stop = undefined; + } + }; + + element.bind('mousedown', startAction); + element.bind('mouseup', stopAction); + element.bind('mouseout', stopAction); + } + }; + + return dirDefObj; + }); \ No newline at end of file -- 1.9.1