$(document).on('mousedown', 'a', function(event){
event.preventDefault();
if(event.which == 1){
if($(this).attr('target') != '_blank'){
loadpage($(this).attr('href'));
}
}
}).on('contextmenu', 'a', function(event){
event.preventDefault();
});
再次问好 Stackoverflow!
对于我当前的项目,我想在每个链接上禁用鼠标右键和鼠标中键。当用鼠标左键单击时,如果链接不包含 target="_blank"
,我需要调用一个使用 AJAX 加载该页面的函数。 (函数 loadpage()
)。
这段代码工作得很好,虽然鼠标中键仍然打开一个新标签。我该如何解决这个问题?
提前致谢!
最佳答案
在该事件处理程序中,调用
e.preventDefault():
$("#foo").on('click', function(e) {
if( e.which == 2 ) {
e.preventDefault();
}
});
或: 使用 JAVASCRIPT 禁用鼠标滚轮事件:
In IE:
document.attachEvent('onmousewheel', function(e){
if (!e) var e = window.event;
e.returnValue = false;
e.cancelBubble = true;
return false;
}, false);
In Safari:
document.addEventListener('mousewheel', function(e){
e.stopPropagation();
e.preventDefault();
e.cancelBubble = false;
return false;
}, false);
In Opera:
document.attachEvent('mousewheel', function(e){
if (!e) var e = window.event;
e.returnValue = false;
e.cancelBubble = true;
return false;
}, false);
In Firefox:
document.addEventListener('DOMMouseScroll', function(e){
e.stopPropagation();
e.preventDefault();
e.cancelBubble = false;
return false;
}, false);
关于javascript - 禁用上下文菜单和右键单击菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19985320/