在动态创建的元素上附加右键单击事件
Attaching Right Click Event on Dynamically Created Elements
下面是动态创建元素并附加 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);
附加一个右键单击事件如何?
您可以使用 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);
}
而不是点击
您问题的答案由两部分组成:
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!");
})
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);
工作示例
node.addEventListener('contextmenu', function(ev) {
ev.preventDefault();
alert('success! - Right Click');
return false;
}, 假);
下面是动态创建元素并附加 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);
附加一个右键单击事件如何?
您可以使用 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);
}
而不是点击
您问题的答案由两部分组成:
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!");
})
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);
工作示例
node.addEventListener('contextmenu', function(ev) {
ev.preventDefault();
alert('success! - Right Click');
return false;
}, 假);