Keydown и Mouse вниз вместе, разные действия

Я пытаюсь изменить курсор на различные действия в сети. По сути, как панорамирование карты. По умолчанию: стандартный курсор-указатель Shift Press: захват курсора Shift + щелчок левой кнопкой мыши (удержание/перетаскивание): захват курсора

Тем не менее, это прекрасно работает, пока я не начну двигаться, после чего мой курсор возвращается к захвату вместо того, чтобы оставаться в захвате. Что я делаю не так?

$(document).keydown(function(event){
  //spacebar = 8
    if (event.keyCode == 16) {

        $('#mysvg').css('cursor', '-webkit-grab');

        }
});
$(document).keyup(function(event){
  //spacebar = 8
    if (event.keyCode == 16) {

        $('#mysvg').css('cursor', 'pointer');
    } 
});



$( "#mysvg" ).mousedown(function(event){
      if (event.shiftKey) {
          $('#mysvg').css('cursor', '-webkit-grabbing');
      }
});

person s_dev    schedule 01.04.2015    source источник


Ответы (1)


Keydown срабатывает многократно во многих браузерах, пока вы не поднимете клавишу. Я знаю, что Chrome и Firefox имеют такое поведение. Итак, ваш обработчик нажатия клавиш сбрасывает курсор.

person Nick Bailey    schedule 01.04.2015
comment
Спасибо... Это правильно. Я решил проблему, установив флаг в функции нажатия клавиш. - person s_dev; 02.04.2015