Gar*_*hPN 9 javascript safari macos jquery dom
当使用ctrl + click在Mac OS 10.9上的Safari中触发上下文菜单事件(Context.JS)时,mousedown/up/click事件也会触发.这会导致菜单关闭.这些事件似乎是彼此异步发生的,所以stopPropagation不起作用,这似乎也会导致间歇性的行为,有时它很好,有时它不是.
有没有其他人遇到过这个问题,如果是这样,你是如何解决它/解决它的?
不幸的是,我无法向群众发布代码,但我希望那些人听起来很熟悉.
fiddle: http://jsfiddle.net/gnh2tuyj/
您可以使用MouseEvent 的ctrlKey属性:
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);Run Code Online (Sandbox Code Playgroud)
div {
border: 1px solid red;
}Run Code Online (Sandbox Code Playgroud)
<div>hold ctrl+click in safari, chrome, etc</div>Run Code Online (Sandbox Code Playgroud)
因此,如果您想自己修补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 });
Run Code Online (Sandbox Code Playgroud)
补丁脚本:http://pastebin.com/6ySveRty
| 归档时间: |
|
| 查看次数: |
1522 次 |
| 最近记录: |