簡體   English   中英

在動態創建的元素上附加右鍵單擊事件

[英]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);

附加一個右鍵單擊事件怎么樣?

你的問題的答案包括兩部分:

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;

}, 錯誤的);

代碼筆: http ://codepen.io/mastersmind/pen/WogoVB

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM