видимо 2 путь единственный реально работающий, но он кажется очень плохим, т.к элементов очень много, и надо рендерить все это и двигать с двойной нагрузкой
Вадим, как раз не хотелось все это с нуля реализовывать, т.к проект уже большой, и писать в каждом нужном компоненте обработчикки на добавление/удаление из стека казалось излишним
в итоге оказалось что есть "vue-shortkey", где стэк реализован из коробки, и надо только навешать события, остановился пока на этом варианте, хоть и есть нюансы
в любом случае спасибо что не прошли мимо и написали подробный ответ
не могу ометить решением ни ваш комментарий, ни свой, но удалять вопрос не хочу, пусть останется для других
спасибо за отклик, вопрос был про то, как организовать компонент-враппер, который не будет отрисовывать исходный список, а лишь добавит в него некоторые общие функции,
в итоге использовал scoped slots
тут все для примера упрощено,
let controls = JSON.parse(localStorage['app']).main.filter.controls
state.filter.list.push({id: state.filter.list_last_id, name: name, controls:controls})
последние извращения, но результат тот же
Stalker_RED: да, чтобы на него можно было навесить ховер, клик, например. Присвоить ему id, ну иметь контроль над каждым, выделить нужный при загрузке.
$(window).keydown(function(e) {
if (e.which == 38) {} // UP
if (e.which == 40) {} // DOWN
if (e.which == 37) {} // LEFT
if (e.which == 39) {} // RIGHT
if (e.which == 32 || e.which == 0) { console.log('space pressed') } // SPACE
}).keyup(function(e) {
if (e.which == 38) {
} else if (e.which == 40) {
} else if (e.which == 37) {
} else if (e.which == 39) {
}
})
так, например, тоже не работает, консоль выводит только для верх-право-пробел, для остальных перекрестий не срабатывает, хром 46, ФФ 40, а у Вас где работает?