簡體   English   中英

jQuery事件以檢測文本的取消選擇

[英]jQuery event to detect deselection of text

jQuery是否捕獲了這樣的事件,可以在取消選擇文本檢測到對文本的取消選擇? 到目前為止,我一直在使用一種方法來捕獲對文檔正文的單擊,但是click(或mouseup)會在清除文本之前獲得對文本的選擇(通過單擊文檔中的其他位置一次)。

此外,在用戶選擇頁面中的某些文本后,還會觸發事件嗎? 上面的方法成功工作是因為,顯然,在選擇了文本之后會觸發正文上的click事件。 但是我想要一種更清潔的方式。

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

您可以使用Selection-對象代表用戶選擇的文本范圍或當前位置。 您的問題已回答堆棧:

在div中獲取選定文本的html

解決方案是創建一個原型,以提高瀏覽器的兼容性和功能。 這也可以,但是我建議上面鏈接的解決方案:

編輯:如果它們在范圍內,則可以將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);
        }
    });
});

編輯:下次,我會讀得更好:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM