2010-11-12 44 views
2

jquery.hotkeys plugin让你轻松添加和删除键盘事件的处理程序。但是,这个插件只能处理键盘事件,而不能处理鼠标点击事件。因此,它不支持像jquery插件绑定ctrl +鼠标点击事件

$('#gallery li.icon').bind('click', 'ctrl+leftbutton', function() { 
    $(this).addClass('selected'); 
}); 

我知道这并不难实现,但我很好奇,如果有人已经发布了这一个整洁的解决方案。

回答

2

你可以只检查事件的.ctrlKey属性这一点,比如:

$('#gallery li.icon').click(function(e) { 
    if(e.ctrlKey) $(this).addClass('selected'); 
}); 

在此我们只是检查是否按Ctrl键被按下,则click事件发生。要明确的是,.ctrlKey是基本的JavaScript,它不依赖于热键插件。

+0

谢谢!其实hotkeys插件使用类似的技术。我最终修改了插件以适应我的需要。 '$('#foo')。bind('click','ctrl + shift + rightbutton',fn)'绝对比三个if语句更清晰。 – powerboy 2010-11-12 22:51:45

+1

@powerboy - true ...但你还包括一个插件,其中3布尔检查(一个'if'语句)将完成这项工作:)例如:'if(e.ctrlKey && e.shiftKey && e.button == 2)$(this).addClass('selected');'vs整个插件:)如果你正在做这一切,当然...但一个插件是做这件事的巨大矫枉过正。 – 2010-11-13 01:23:33