Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.08.2018, 18:44
Кандидат Javascript-наук
Отправить личное сообщение для Начинающий-Js-кодер Посмотреть профиль Найти все сообщения от Начинающий-Js-кодер
 
Регистрация: 12.06.2016
Сообщений: 130

Горячиеклавиши на сайте
Здравствуйте, хочу сделать возможным использование клавиш и сочетаний на сайте. Но не самому их назначать(например 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.

Возможно ли такое динамическое назначение клавиш или нет?
Ответить с цитированием
  #2 (permalink)  
Старый 08.08.2018, 19:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

горячие клавиши shortcut js
Начинающий-Js-кодер,
дока
https://github.com/jeresig/jquery.hotkeys
демо
https://rawgit.com/jeresig/jquery.ho...static-01.html

дока
https://craig.is/killing/mice
https://github.com/blainekasten/shortcut.js
Ответить с цитированием
  #3 (permalink)  
Старый 08.08.2018, 19:45
Кандидат Javascript-наук
Отправить личное сообщение для Начинающий-Js-кодер Посмотреть профиль Найти все сообщения от Начинающий-Js-кодер
 
Регистрация: 12.06.2016
Сообщений: 130

А будет ли так работать:
var arrayhotkey ={};

а в нем хранить "сочетание клавиш":"функция"
и вызывать так:
$(document).bind('keydown', elements[i], elements[i]());

или так не заработает?
Ответить с цитированием
  #4 (permalink)  
Старый 08.08.2018, 22:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

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>
Ответить с цитированием
  #5 (permalink)  
Старый 08.08.2018, 23:07
Кандидат Javascript-наук
Отправить личное сообщение для Начинающий-Js-кодер Посмотреть профиль Найти все сообщения от Начинающий-Js-кодер
 
Регистрация: 12.06.2016
Сообщений: 130

То есть для моего случая нужно:
1)чтобы var keys не заранее задавалась строка,а откуда-то получалась.
2)добавление,проверка на существование,удаление в массив arrayhotkey.

Хотел спросить,как динамически в arrayhotkey добавлять в значение функцию,чтобы не получилась обычная строка?Например есть function test1(),test2() как их добавить,а не все тело функции,чтобы было так:
var arrayhotkey = {

	        "ctrl+m+y": test1()
	        }
	    };
Ответить с цитированием
  #6 (permalink)  
Старый 08.08.2018, 23:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Начинающий-Js-кодер,

function test1(event) {};
arrayhotkey["ctrl+m+y"] = tes1;
Ответить с цитированием
  #7 (permalink)  
Старый 09.08.2018, 08:55
Кандидат Javascript-наук
Отправить личное сообщение для Начинающий-Js-кодер Посмотреть профиль Найти все сообщения от Начинающий-Js-кодер
 
Регистрация: 12.06.2016
Сообщений: 130

Спасибо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск на сайте методом post konsd26 jQuery 13 18.11.2017 15:24
Разовая. Скопировать скрипт, как на сайте. Gunji Работа 6 25.01.2017 17:48
Доработка скрипта "фейковых заказов", Всплывающие сообщения на сайте о заказе Александр801 AJAX и COMET 18 27.09.2016 04:29
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Сервисы для реализации оплаты кредитками на сайте. nyols Серверные языки и технологии 1 29.05.2011 13:44