Запуск события jquery keyup вручную с неверным кодом - PullRequest
0 голосов
/ 17 марта 2020

У меня есть ввод, который я хочу разрешить пользователю сохранять текст либо нажатием клавиши ввода, либо нажатием в любом другом месте экрана. Получение кода для обработки, когда пользователь нажимает ввод, не проблема. Но я хочу обработать тот же код, вызвав событие keyup jquery, когда пользователь щелкает, как если бы вместо этого он нажал Enter в поле ввода. Теория не дает мне проблемы, но код ключа либо неправильно передается, либо интерпретируется неправильно при нажатии. Когда я предупреждаю интерпретированный код клавиши, я получаю «1», который не соответствует нажатию клавиши. Что я делаю не так?

$(document).on("click","body",function(e){      
 if(e.target.id!="openInput"){ //Indicates user has clicked out away from the input
  if($(".attributeEdit")[0]){ //This is a unique class added 
    var i = $.Event('keyup');
    i.which = 13; 
    $(".attributeEdit").trigger(i); //Have also tried triggering off #openInput, too with no success
  }
 }
});

$(document).on("keyup",".attributeEdit",function(){ 
 var keycode = (event.keyCode ? event.keyCode : event.which);
 if(keycode == '13'){
  do stuff; 
 }
 else{
  alert("keycode: " + keycode);  //This results in a "1" every time user clicks away
 }
});

1 Ответ

0 голосов
/ 21 марта 2020

Я нашел решение для конечной цели, используя предложение Хирен Райяни о вызове функции. На самом деле он не отвечает на первоначальный вопрос, но, поскольку он решил мою проблему, я надеюсь, что это будет полезно для других, кто ищет. Я создал функцию «делать вещи», и таким образом я могу вызывать эту функцию как после нажатия клавиши Enter, так и после нажатия мыши.

function doStuff(x,y){
  do stuff
}

$(document).on("click","body",function(e){      
  if(e.target.id!="openInput"){ //Indicates user has clicked out away from the input
    if($(".attributeEdit")[0]){ //This is a unique class added 
      doStuff(x,y);
    }
  }
});

$(document).on("keyup",".attributeEdit",function(){ 
  var keycode = (event.keyCode ? event.keyCode : event.which);
  if(keycode == '13'){
    doStuff(x,y); 
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...