繁体   English   中英

e.preventDefault()不起作用,但事件数据是正确的

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

的jsfiddle

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM