簡體   English   中英

Angular js 指令在任何元素上按下回車鍵時觸發“點擊”事件

[英]Angular js Directive to Fire "click" event on pressing enter key on ANY element

我需要使用指令使用輸入鍵觸發點擊事件。 我需要它作為指令,因為我想重用它。

例如:一個 div 綁定了一些 onclick 事件,我將使用 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;
}

})();

(function () {
'use strict';

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();
                }
            });
        }
    };
}

})();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM