Невозможно вызвать события в jQuery - PullRequest
0 голосов
/ 27 сентября 2018

Я хочу вызвать событие контекстного меню в jQuery для аудиоэлемента.Вот код:

$("audio").contextmenu();

Однако, это не показывает контекстное меню для элемента.Я подумал, что может быть необходимо какое-то взаимодействие с пользователем, поэтому я обернул его в событие moueenter.

$("audio").on("mouseenter", function(e) {
   $(this).contextmenu();
}

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

$("audio").on("contextmenu", function(e) {
  var code = 86;
  $(this).trigger(
    jQuery.Event( 'keydown', { keyCode: code, which: code } )
  );
});

Этот фрагмент кода должен был вызвать событие нажатия клавиши jQueryс нажатой клавишей «v».

Когда мы щелкаем правой кнопкой мыши на элементе аудио и нажимаем «v», он показывает диалог сохранения звука в виде диалога.Я хотел написать код для программного запуска контекстного меню и нажатия клавиш, но ни один из них, похоже, не дал никакого эффекта.Почему это?

1 Ответ

0 голосов
/ 27 сентября 2018

Вы можете вызвать меню правой кнопки мыши на вашем аудиоэлементе, но только если вы щелкните правой кнопкой мыши на нем.Обязательно добавьте атрибут «controls» в ваш аудиоэлемент, чтобы на нем было что щелкнуть.Попробуйте это с кодом ниже.

$("audio").on("contextmenu", function(e) {
  alert("Hello Context Menu!");
});

$("button").on("click", function(){
  $("audio").contextmenu();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<audio id="t-rex-roar" controls src="https://soundbible.com/mp3/Tyrannosaurus%20Rex%20Roar-SoundBible.com-807702404.mp3">
</audio>
<button>Call Context Menu Event for Audio Element, Event only</button>

Однако , вы не можете добавить событие нажатия кнопки, которое отображает контекстное меню для другого элемента; Программный вызов параметров меню правого клика в браузере?

...