Run javascript function when user finishes typing instead of on key up?

前端 未结 29 2098
我寻月下人不归
我寻月下人不归 2020-11-22 04:03

I want to trigger an ajax request when the user has finished typing in a text box. I don\'t want it to run the function on every time the user types a letter because that wo

29条回答
  •  悲&欢浪女
    2020-11-22 04:31

    Not a direct answer bu if someone looking for an AngularJS solution. I wrote a directive according to the popular solutions here.

     app.directive("ngTypeEnds", ["$timeout", function ($timeout) {
        return function (scope, element, attrs) {
            var typingTimer;               
            element.bind("keyup", function (event) {
                if (typingTimer)
                    $timeout.cancel(typingTimer);
                if (angular.element(element)[0].value) {
                    typingTimer = $timeout(function () {
                        scope.$apply(function () {
                            scope.$eval(attrs.ngTypeEnds);
                        });
                    }, 500);
                }
                event.preventDefault();
            });
        };
    }]);
    

提交回复
热议问题