2015-04-09 6 views
-1

Привет, я хотел отключить контекстное меню на моем сайте в целом, поэтому я положил oncontextmenu= return false в тело, но я хочу, чтобы он был включен для одного определенного изображения на сайте. Есть ли способ повторно включить контекстное меню для этого конкретного элемента?re enable контекстное меню HTML5

ответ

0

NYour ошибка состоит в том, чтобы добавить его в тег тела, потому что это фактически гарантирует, что «oncontextmenu» событие добавляется каждый элемент, который является дочерним <body> - это потому, что события «бульканье» в DOM ,

Вот пример того, что я думаю, достигает того, что вы ищете:

<html> 
<body> 
    <h1 oncontextmenu="test();">Right click me to do custom stuff!</h1> 
    <h1>Right click me and the usual should happen</h1> 

</body> 
<script type="text/javascript"> 
    function test() { 
     window.alert("Custom stuff happens!"); 
    } 
</script> 
</html> 

Хотя можно предотвратить распространение событий (см https://api.jquery.com/event.stoppropagation/ функции JQuery как хороший способ сделать это), в ваш случай выше должен сделать трюк, не требуя большого количества дополнительного кода, чтобы решить, должен ли элемент щелкнуть, чтобы отвечать на событие или нет.

+0

Я понимаю, что мой подход может быть не лучшим, но вопрос остается, если я гипотетически хотел «восстановить» контекстное меню по умолчанию, это возможно? (так что в основном что-то вроде = return true) – Cres

+0

Да, вы можете выбрать элемент с помощью Javascript и удалить прослушиватель событий. – Anselan

Смежные вопросы