Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery事件处理程序-根据特定键和操作触发函数_Jquery_Key_Triggers_Action - Fatal编程技术网

jquery事件处理程序-根据特定键和操作触发函数

jquery事件处理程序-根据特定键和操作触发函数,jquery,key,triggers,action,Jquery,Key,Triggers,Action,背景故事:当用户用鼠标选择文本字段中的一部分文本(手动标记),然后点击“alt”键时,会触发某个函数 我的问题是: 当发生错误时,如何触发函数 用户点击一个键(在她的键盘上) 如何保留选定文本的一部分,并将其用作 该函数的参数 我试着在网上查找,但没有找到任何好的答案,但我也非常感谢链接 $(document).keydown(function(event){ if (event.altKey) { var text = $.trim(getSelectedText(

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

我的问题是:

  • 当发生错误时,如何触发函数 用户点击一个键(在她的键盘上)
  • 如何保留选定文本的一部分,并将其用作 该函数的参数
我试着在网上查找,但没有找到任何好的答案,但我也非常感谢链接

$(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);
        }
    }
});
如果要在文本输入或文本区域中获取所选文本,可以执行以下操作:

$(':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);
        }
    }
});

非常感谢你的回答。我试着用alert(文本)来做这件事,但它什么也没提醒。你认为为什么会发生这种情况?当你按alt键时是否选择了某个对象?是的,有。我在一个输入字段中写下了“这太棒了”,对其进行了标记,点击alt,它没有发出任何警报(我将警报放在.keydown函数中嵌套的if之后。(我发出警报,但警报框中没有显示任何内容)。等等!它确实起作用,但当我标记已经写入文档的文本时。但是写入文本(如写入字段)我做了标记,但没有提醒。是的,我应该强调一下。你认为有办法做到这一点吗?非常感谢你的回答。我试着用提醒(文本)来做这件事,但它没有提醒。你认为为什么会发生这种情况?当你按alt键时是否选择了某些内容?是的,有。我写下了“这太棒了”在一个输入字段中,标记它,点击alt,它没有发出任何警报(我将警报放在.keydown函数中嵌套的if之后。(我发出警报,但警报框中没有显示任何内容)。等等!它确实起作用,但当我标记已经写入文档的文本时。但是写入文本(如写入字段)我知道,它不警觉。是的,没错,我应该强调一下。你认为有办法做到这一点吗?