Ниже приведен код, который динамически создает элемент и присоединяет событие onclick.

var div = document.createElement('div');
div.onclick = function(e){
    console.debug(e);           
}

var parent = document.getElementsByClassName('myid_templates_editor_center_menu');
parent[0].appendChild(div);

Как насчет прикрепления события правого клика?

3
user4621642 12 Дек 2016 в 10:04

5 ответов

Лучший ответ
var div = document.createElement('div');
div.oncontextmenu = function(e){
    console.debug(e);           
}

var parent = document.getElementsByClassName('myid_templates_editor_center_menu');
parent[0].appendChild(div);
-1
Surya Purohit 12 Дек 2016 в 07:15

Ответ на ваш вопрос состоит из двух частей:

1) Как прикрепить событие, щелкнув правой кнопкой мыши?

Ответ: используйте событие contextmenu.

2) Как прикрепить событие к динамически создаваемым элементам?

Ответ: идея заключается в том, чтобы прикрепить событие к родительскому элементу, который будет содержать ваш вновь созданный элемент. Событие будет распространяться вдоль DOM, пока не достигнет вашего родительского элемента.

Рабочий пример .

//get parent elements
var elements = getElementsByClassName('myid_templates_editor_center_menu'); 

//attach to the first found parent element
elements[0].addEventlistener('contextmenu', function(e) {
    console.log("right clicked!");
 })
2
user6269864user6269864 12 Дек 2016 в 07:14

Вы можете использовать contextmenu

window.onload = function() {
  var div = document.createElement("div");
  div.innerHTML = "right click";
  div.oncontextmenu = function(e) {
    console.debug(e.type, e);
  }

  document.body.appendChild(div);
}
0
guest271314 12 Дек 2016 в 07:14

Добавлять

div.oncontextmenu = function(e){
    e.preventDefault();
    console.debug(e);           
}

Вместо клика

0
w.Bala 12 Дек 2016 в 07:13

Рабочий пример

node.addEventListener('contextmenu', function(ev) {
ev.preventDefault();
alert('success! - Right Click');
return false;

}, ложный);

Codepen: http://codepen.io/mastersmind/pen/WogoVB

0
mastermind 12 Дек 2016 в 07:22