Глобально установить роль = кнопка для нажатия клавиши пробела для псевдо-кнопок с hrefs - PullRequest
0 голосов
/ 10 мая 2018

У нас есть гигантский сайт с сотнями страниц с множеством кнопок. Мы пытаемся сделать сайт более доступным, но почти все кнопки изначально были оформлены с использованием <a href= против <button>. Это означает, что нам нужно включить пробел для работы с этими ссылками. Мой вопрос: можете ли вы глобально установить все ссылки с role = "button" на нажатие клавиши 32, чтобы отправить пользователя по указанному пути href с помощью javascript? Я знаю, что это можно сделать индивидуально, например:

<a href="/employee.html" class="btn" role="button">Example</a>

$(function() {
    $(".btn").keypress(function(e) {
        if (e.which === 32) {
            e.preventDefault();
            window.location = "/employee.html"
        }
    });
});

Есть ли способ вызвать универсальное нажатие клавиши 32 для всех кнопок role = и отправить целевой путь к функции, чтобы пробел действительно активировал ссылку?

1 Ответ

0 голосов
/ 10 мая 2018

Я бы, вероятно, попробовал что-то вроде следующей цели: все ссылки, отфильтровать те из них, у которых есть роль, а затем по ключевому слову пространства, установить URL-адрес, на который они обычно идут.

$(function() {
    $("a").filter('[role="button"]').on('keyup', function(e) {
        if (e.which === 32) {
            window.location = e.target.href;
        }
    });
});
...