【问题标题】:Angular js Directive to Fire "click" event on pressing enter key on ANY elementAngular js指令在任何元素上按下回车键时触发“点击”事件
【发布时间】:2021-12-30 02:56:20
【问题描述】:

我需要使用指令使用回车键触发点击事件。我需要它作为指令,因为我想重用它。

例如:一个绑定了一些 onclick 事件的 div,我将使用 tabindex="0" 将焦点设置在 div 上,然后键盘输入 keydown 以触发点击事件。

这可能吗?我已经尝试了下面的指令代码,但它不起作用。

(function () {
'use strict';

angular
    .module('app.directives')
    .directive('enterKeyInput', enterKeyInput);

enterKeyInput.$inject = [];

/* @ngInject */
function enterKeyInput() {

    var directive = {
        restrict: 'AC',
        link: function (scope, element, attrs) {
            element.bind("keydown keypress", function (event) {
                if (event.keyCode === 13) {
                    element.click();
                }
            });
        }
    };

    return directive;
}

})();

【问题讨论】:

    标签: javascript angularjs angularjs-directive click enter


    【解决方案1】:

    自己找到了答案:D

    (函数(){ '使用严格';

    angular
        .module('app.directives')
        .directive('enterKeyInput', enterKeyInput);
    
    enterKeyInput.$inject = [];
    
    /* @ngInject */
    function enterKeyInput() {
    
        return {
            restrict: 'AC',
            link: function (scope, element, attrs) {
                element.bind('keyup', function (e)  {
                    if ([13].indexOf(e.which) !== -1)  {
                        e.preventDefault();
                        e.stopPropagation();
                        element.click();
                    }
                });
            }
        };
    }
    

    })();

    【讨论】:

      猜你喜欢
      • 2013-08-12
      • 2017-03-26
      • 2019-10-06
      • 1970-01-01
      • 1970-01-01
      • 2011-11-12
      • 2014-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多