我希望得到一个简单的右键单击来触发一个功能,并且右键单击以显示正常的上下文菜单而不会触发任何功能。左键单击绑定到另一个函数。
我正在尝试:
$(selector).mousedown(function (ev) {
if (ev.which === 1) {
function1();
} else if (ev.which === 3) {
if (ev.shiftKey) {
} else {
ev.preventDefault();
ev.stopPropagation();
function2();
}
}
return false;
});
但是当我右键单击时,仍会显示上下文菜单。
我不想使用
$(selector).attr("oncontextmenu", "return false;");
因为这会完全禁用上下文菜单。
答案 0 :(得分:0)
if(!ev.shiftKey){
ev.preventDefault();
anotherFunction();
}
答案 1 :(得分:0)
使用contextmenu
事件代替mousedown
进行右键点击
$('div').on('contextmenu', function(ev) {
if (!ev.shiftKey) {
ev.preventDefault();
function2();
}
}).on('mousedown', function(ev) {
if (ev.which == 1) {
function1();
}
});
function function2() {
console.log('function 2 called')
}
function function1() {
console.log('function 1 called')
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div style="padding:50px; border:1px solid #ccc">
Test
</div>