2010-11-12 96 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