Keyup на выбранном div с .focus / .focusout (jquery) - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть следующее кратное HTML div: <div class="draggable"></div> (которые генерируются через al oop, все они имеют один и тот же класс). При нажатии на элемент div следует добавить класс («verso») при нажатии клавиши клавиатуры (здесь: стрелки вправо и влево). Это работает, но как мне интегрировать фокус, чтобы иметь возможность отменить выбор этого div и выбрать другой? Что-то подобное не работает.

$(".draggable")
    .draggable()
    .click(function(){
         $(this).is(":focus", function() {
            $(this).focusout();
        });
        $(this).not(":focus", function() {
            $(this).focus();
        });

        $('.draggable').on('keyup', function(e){ 
        if ((e.which == 39) || (e.which == 37)) {
        if (!$(this).hasClass('verso')) {
            $(this).addClass("verso");
            }
        else {
            $(this).removeClass("verso");
        }        
            }
        });

Ответы [ 2 ]

1 голос
/ 20 апреля 2020

Оберните ваш код в

$(document).ready(() => {
   // Here goes your code
});

Это обеспечит запуск сценариев только после готовности DOM

1 голос
/ 20 апреля 2020

", которые сгенерированы через al oop, все они имеют один и тот же класс"

Когда генерируется HTML, он в основном отсутствует в DOM при установке обработчиков Click.

Попробуйте использовать

$(document).on('click', '.draggable', function(){})

Чтобы установить обработчик кликов в документе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...