Как обнаружить правый клик + вырезать / удалить / вставить / отменить в JavaScript?

В моем коде JavaScript/jQuery у меня есть текстовое поле, в котором я запускаю событие, когда текст изменяется с помощью события keyup. Однако в настоящее время я учитываю только изменения, сделанные с помощью клавиатуры.

Есть ли способ определить, когда текстовое поле изменилось, потому что пользователь щелкнул правой кнопкой мыши и нажал на вырезать или удалить, вставить или отменить?

Примечание: это должно работать в IE9, и предпочтительно Firefox и Chrome, но определенно должно работать в IE9.

Спасибо

2 ответа

Решение

jsFiddle Demo

Используйте jquery для привязки входного события к элементу следующим образом:

$('#myInput').bind('input',function(){
  //use this for the input element when input is made
  var inputValue = this.value;//for example
 });

Для начала, это не совсем правильный способ сделать это. Но если вы отреагируете на событие mouseout ввода, вы, скорее всего, будете вести себя так, как вам хочется.

$('#input').mouseout(function(){
  if($('#input').is(":focus"))
    console.log("Right-click");
});

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

Примечание. Кроме @Travis J, которые реагируют на все взаимодействия, это (вероятно) будет вызывать событие только при щелчке правой кнопкой мыши (и при обычной мышке).

Другие вопросы по тегам