2013-03-15 67 views
3

我需要一個與CSS3中的::selection相同的jquery選擇器。用於文本選擇的jQuery選擇器

我想要在每次選擇文檔中的文本時觸發一個事件。我發現了solution,但它只適用於html標籤。我需要選擇器不僅用於html標籤,而且還用於任何文本。

+0

那搗鼓正在爲我的獨立文本..是您遇到的問題特定的瀏覽器? – SmokeyPHP 2013-03-15 21:13:10

+0

那麼,我正在使用谷歌瀏覽器,它不工作。 – palAlaa 2013-03-15 21:18:15

+0

無論如何,小提琴中的解決方案在技術上不會起作用。選擇不*需要使用鼠標。有**插頁瀏覽**這樣的事情,用戶可以輕鬆地在沒有鼠標的情況下導航頁面,包括文本選擇。這是一個邊緣情況,你說?那麼,在用鼠標進行初始選擇時,通過按住shift鍵並使用箭頭鍵,可以擴展選擇的情況。很常見。 – BinaryTox1n 2013-03-15 21:25:21

回答

1

首先,選擇CSS標籤已從W3C CSS3 Specification中刪除,並且在很大程度上不受瀏覽器支持。但那不是你的問題!只是要獲取的出路......

我相信你有什麼想實際上是一個DOM功能:window.getSelection()

注:$(窗口).getSelection()是無效的。

要獲得由選擇觸發的事件,您可能會綁定到可能導致選擇的相關鼠標/鍵盤/觸摸事件,然後使用getSelection()查看它是否確實會導致選擇(通過檢查其長度, 例如)。然後,您可以將其與計時器配對,以確保您不會爲所選的每個字母投擲事件,但顯然這取決於事件觸發後您想要執行的操作。

您可能還需要仔細閱讀本(非重複!)問題:Insert selected text on the page into textarea (jQuery)

+0

它使用window.getSelection(),但$(window).getSelection();導致錯誤。 – palAlaa 2013-03-15 21:36:02

+0

嗯,所以它。我想這是直的JS!編輯答案修復... – BrianHall 2013-03-16 01:03:52