jquery事件处理程序 - 触发特定键和动作的函数

时间:2010-03-27 22:53:38

标签: jquery key triggers action

背景故事:当用户用鼠标选择文本字段中的部分文本(手动标记),然后点击“alt”键时,会触发某个功能。

我的问题是:

  • 如何在a时触发功能 用户点击一个键(在她的键盘中)?
  • 如何保留所选文本的一部分,并将其用作 该函数的参数?

我尝试在网上查找但没有找到任何好的答案,但我也非常感谢链接。

1 个答案:

答案 0 :(得分:3)

$(document).keydown(function(event){
    if (event.altKey) {
        var text = $.trim(getSelectedText());
        if (text.length) {
            console.log(text);
        }
    }
});

function getSelectedText() { 
    if (window.getSelection) { 
        return window.getSelection().toString(); 
    } else if (document.getSelection) { 
        return document.getSelection(); 
    } else if (document.selection) { 
        return document.selection.createRange().text; 
    } 
} 

如果要在文本输入或文本区域中获取所选文本,可以执行以下操作:

$(':text, textarea').keydown(function(event){
    if (event.altKey) {
        var text = '';
        if ('selectionStart' in this){
            var length = this.selectionEnd - this.selectionStart;
            text = $.trim($(this).val().substr(this.selectionStart, length));
        } else if (document.selection) {
            text = $.trim(document.selection.createRange().text);
        }
        if (text.length) {
            console.log(text);
        }
    }
});