用于检测取消选择文本的jQuery事件

时间:2017-05-15 00:28:47

标签: javascript jquery

是否有这样的事件被jQuery捕获,我可以用来检测取消选择文本后取消选择文本?到目前为止,我一直在使用一种方法来捕获文档' s BODY上的点击,但是单击(或鼠标)可以在文本被清除之前选择文本(通过单击其他位置文件,曾经)。

此外,是否有用户在页面中选择了一些文字后触发的事件?上面的方法可以成功运行,因为显然,在选择文本后会触发正文上的click事件。但我想要一个更清洁的方式。

注意:此操作在DIV上完成,而不是在INPUT或TEXTAREA元素上完成。

1 个答案:

答案 0 :(得分:0)

您可以使用Selection - object表示用户选择的文本范围或当前位置。你的问题已经回答了Stacks:

get selected text's html in div

有,解决方案是创建一个原型来提高浏览器的兼容性和内容。这也有效,但我推荐以上链接的解决方案:

编辑:你可以将AnchorOffset和FocusOffset存储到一个会话中,如果它们在一个范围内并在那之后进行比较,那么简单

$(function() {
    $(document).on("mouseup", function() {
        var mytext = window.getSelection();
        if (typeof sessionStorage.getItem('initialRange') != 'undefined' && (mytext.anchorOffset != sessionStorage.getItem('initialRange') || mytext.focusOffset != sessionStorage.getItem('finalRange'))){
            //DO WHAT YOU WANT, THE TEXT HAS BEEN DESELECTED
        }
        //take the coordenates of mouseup, when the mouse create a range, store the values
        if (mytext.anchorOffset != mytext.focusOffset){
            sessionStorage.setItem('initialRange', mytext.anchorOffset);
            sessionStorage.setItem('finalRange', mytext.focusOffset);
        }
    });
});

编辑:下次,我会更好地阅读:)