[英]e.preventDefault() not working, but event data is correct
我将事件监听器应用于两个对mousedown事件做出反应的元素。 它们工作正常,但它会导致出现右键菜单,我试图阻止它。
我不完全理解为什么它不起作用。 这是我的代码:
function moveDiv(e){
e.preventDefault(); //not working
if(e.button == 2){ //works on right click only, so e is correct data
console.log(this); //works - shows element data
}
}
function load(){
function addEvents(){
var d = getDiv('overview'); //getDiv gets the element by id
d.addEventListener('mousedown',moveDiv,false);
var d = getDiv('login_data');
d.addEventListener('mousedown',moveDiv,false);
}
templateLoad('main.html',addEvents); //works: async loads page, then call function 'addEvents'
}
load();
我添加了注释以显示哪些行正在工作,我使用console.log进行了测试。 e
是正确的,因为e.button
只在右键单击响应,所以我不知道为什么e.preventDefault()
在这种情况下无效。
您需要为contextmenu事件添加事件侦听器,例如
.addEventListener('contextmenu', function(e) {
e.preventDefault();
}, false);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.