Горячиеклавиши на сайте
Здравствуйте, хочу сделать возможным использование клавиш и сочетаний на сайте. Но не самому их назначать(например alt+shift+j действие1 и т.д.) а чтобы пользователь имея ряд сочетаний клавиш,каждой назначил свои действия из списка.
Например, есть сочетания: shift+ctrl+alt+o,shift+ctrl+alt+p и есть действия:действие1,действи 2. Вася назначил для действия1 - shift+ctrl+alt+o,для действия2 - shift+ctrl+alt+p. А Петр для дейтсвия1 выбрал shift+ctrl+alt+p,для действия2 - shift+ctrl+alt+o. Возможно ли такое динамическое назначение клавиш или нет? |
горячие клавиши shortcut js
|
А будет ли так работать:
var arrayhotkey ={};
а в нем хранить "сочетание клавиш":"функция" и вызывать так:
$(document).bind('keydown', elements[i], elements[i]());
или так не заработает? |
mousetrap горячие клавиши
Начинающий-Js-кодер,
нажать ctrl+m+y
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
div.hot{
width: 100px;
height: 100px;
border: 1px dashed Gray;
padding: 5px;
}
.Red{
background-color: Red;
}
.Green{
background-color: Green;
}
.Yellow{
background-color: Yellow;
}
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mousetrap/1.6.2/mousetrap.min.js"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
var arrayhotkey = {
"ctrl+m+y": function(event) {
event.preventDefault();
alert("my")
},
"ctrl+b": function(event) {
event.preventDefault();
alert("b")
}
};
var keys = "ctrl+m+y";
Mousetrap(document).bind(keys, arrayhotkey[keys])
});
</script>
</head>
<body>
<div class="hot Red"></div>
</body>
</html>
|
То есть для моего случая нужно:
1)чтобы var keys не заранее задавалась строка,а откуда-то получалась. 2)добавление,проверка на существование,удаление в массив arrayhotkey. Хотел спросить,как динамически в arrayhotkey добавлять в значение функцию,чтобы не получилась обычная строка?Например есть function test1(),test2() как их добавить,а не все тело функции,чтобы было так:
var arrayhotkey = {
"ctrl+m+y": test1()
}
};
|
Начинающий-Js-кодер,
:-?
function test1(event) {};
arrayhotkey["ctrl+m+y"] = tes1;
|
Спасибо
|
| Часовой пояс GMT +3, время: 06:52. |