gpt4 book ai didi

javascript - 在 Safari for Mac 中使用 Ctrl+Click 时如何禁用上下文菜单事件中的单击事件?

转载 作者:行者123 更新时间:2023-11-30 06:20:11 25 4
gpt4 key购买 nike

在 Mac OS 10.9 的 Safari 中使用 ctrl+ click 触发上下文菜单事件 (Context.JS) 时,也会触发 mousedown/up/click 事件。这会导致菜单关闭。这些事件似乎彼此异步发生,因此 stopPropagation 不起作用,这似乎也会导致间歇性行为,有时没问题,有时则不然。

有没有其他人遇到过这个问题,如果你遇到过,你是如何解决/解决它的?

不幸的是,我无法向大众发布代码,但我希望它听起来很熟悉。

fiddle : http://jsfiddle.net/gnh2tuyj/

最佳答案

您可以使用 ctrlKey property鼠标事件的:

var div = document.querySelector('div');
div.addEventListener('click', function(e) {
if (e.ctrlKey) return;
e.preventDefault();
alert('click!');
}, false);

div.addEventListener('contextmenu', function(e) {
e.preventDefault();
alert('context menu!');
}, false);
div {
border: 1px solid red;
}
<div>hold ctrl+click in safari, chrome, etc</div>

所以如果你想修补context.js你自己,只需添加 if(ctrlKey) return; l24。

l23    $(document).on('click', 'html', function (e) {
l24 if(e.ctrlKey) return;
l25 $('.dropdown-context').fadeOut(options.fadeSpeed, function(){
l26 $('.dropdown-context').css({display:''}).find('.drop-left').removeClass('drop-left');
l27 });
l28 });

补丁脚本:http://pastebin.com/6ySveRty

关于javascript - 在 Safari for Mac 中使用 Ctrl+Click 时如何禁用上下文菜单事件中的单击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53660359/

25 4 0