2 回答
TA贡献1876条经验 获得超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 键,你会发现是以大写 D 的值为准,为68。所以你这么写:
$(document).keydown(function(e){
if(e.ctrlKey && e.which == 68)
{
triggerSomething();
}
})
function triggerSomething()
{
document.write('add bookmark successfully!');
}
上面那段代码可以 handle 更多的 ctrl + key 事件,如果在你的项目里有很多地方会出现 ctrl + key,那么可以把第一段代码当做一个 plugin 来用,如果只有这一处用到的话,就用下面这段吧。
添加回答
举报
