2012-01-10 75 views
1

我想在文本選擇完成後立即調用函數。我目前在mouseup上調用了一個函數,但是這仍然是在選擇完成之前。jQuery:如何將函數綁定到mouseup事件之後立即發生的某個事件?

那麼,如何在選擇後立即調用函數?

編輯:有一個.select()文本字段,但我正在尋找DOM中的任何地方的選擇,主要是跨度和divs等。

+0

選擇什麼? – Stefan 2012-01-10 19:09:21

+0

文本,文本選擇。一個用鼠標做的? = \ – NullVoxPopuli 2012-01-10 19:09:43

回答

2

你試過select事件嗎?如果jQuery是在你的應用程序提供一個,你可以這樣做:

$("#someElement").select(function(e) { 
    // do something! 
}) 

爲常規文本(即不是輸入),下面從@mrtsherman建議應該工作:

$(document).bind("mouseup", function(e) { 
    var text = getSelected(); 

    if (text) { 
     // do something with the selected text 
    } 
}); 

function getSelected() { 
    if (window.getSelection) { 
     return window.getSelection(); 
    } else if (document.getSelection) { 
     return document.getSelection(); 
    } else { 
     var selection = document.selection && document.selection.createRange(); 
     if (selection.text) { 
      return selection.text; 
     } 
     return false; 
    } 
    return false; 
}; 

希望幫助!乾杯。

+0

「當用戶在其中進行文本選擇時,將選擇事件發送到元素。此事件僅限於字段和