2 回答

TA貢獻1876條經(jīng)驗 獲得超7個贊
$.ctrl = function(key, callback, args) {
var isCtrl = false;
$(document).keydown(function(e) {
if(!args) args=[];
if(e.ctrlKey) isCtrl = true;
if(e.keyCode == key.charCodeAt(0) && isCtrl) {
callback.apply(this, args);
return false;//you can remove this line if you need bookamrk
}
}).keyup(function(e) {
if(e.ctrlKey) isCtrl = false;
});
};
$.ctrl('D', function() {
triggerSomething();
});
function triggerSomething() {
document.write('add bookmark successfully!');
}
其實你是弄錯了 D 的 ASCII 碼和事件類型,你先測試下:
$(document).keydown(function(e) {
alert(e.which);
})
此時你點擊 D 鍵,你會發(fā)現(xiàn)是以大寫 D 的值為準,為68。所以你這么寫:
$(document).keydown(function(e){
if(e.ctrlKey && e.which == 68)
{
triggerSomething();
}
})
function triggerSomething()
{
document.write('add bookmark successfully!');
}
上面那段代碼可以 handle 更多的 ctrl + key 事件,如果在你的項目里有很多地方會出現(xiàn) ctrl + key,那么可以把第一段代碼當做一個 plugin 來用,如果只有這一處用到的話,就用下面這段吧。
添加回答
舉報