Ниже приведен код, который динамически создает элемент и присоединяет событие 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);
Как насчет прикрепления события правого клика?
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) Как прикрепить событие, щелкнув правой кнопкой мыши?
Ответ: используйте событие 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!");
})
Вы можете использовать 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);
}
Добавлять
div.oncontextmenu = function(e){
e.preventDefault();
console.debug(e);
}
Вместо клика
Рабочий пример
node.addEventListener('contextmenu', function(ev) {
ev.preventDefault();
alert('success! - Right Click');
return false;
}, ложный);
Codepen: http://codepen.io/mastersmind/pen/WogoVB
Похожие вопросы
Связанные вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.