2012-02-25 38 views
0

是否有可能在選定的文本末尾位置div如彈出式/工具提示莫名其妙?正在頁面上選擇文本,而不是在輸入或textarea中。頂部圖層上的位置div(如彈出窗口/工具提示)在選定的文本末尾

編輯:我想我需要澄清,我已經有了textselect事件,我只是想確定所選文本的位置。

EDIT2:我意識到,事件本身具有pageX屬性和pageY cooridnates,所以我只是能夠抓住這一點,用它來定位我的彈出

+0

當你說「選定的文本」時,你的意思是用戶用鼠標選擇的文本,即? – mariogl 2012-02-25 15:10:51

+0

@mariogl是這就是它 – DavidW 2012-02-25 15:32:57

回答

0

採取文字的偏移頂部,你想放的彈出以上,並且通過在彈出 http://jsfiddle.net/UuGtm/3/

$("#popup").css("top",parseInt($("#text").offset().top)-parseInt($("#popup").height()); 
+0

我沒有設置#text或任何可以獲取位置的地方,只是在頁面上可能存在任何地方的選定文本。 – DavidW 2012-02-25 15:07:20

+0

這只是一個例子......你可以在頁面中取任何你想要的元素,如果它可以幫助你 – 2012-02-25 15:09:46

1

jquery的選擇事件被限制爲輸入和textarea的高度減少它。

有沒有簡單的方法來檢測整個文檔select event儘管IE瀏覽器有一個選擇事件是在所有元素上實現的,但其他瀏覽器只有這樣才能輸入。但您可以通過處理頁面上的鍵盤和鼠標事件來實現。

這裏有一個例子:

example.Selector = {}; 
//each browser has a paricular getSelection . 
example.Selector.getSelected = function(){ 
    var t = ''; 
    if(window.getSelection){ 
    t = window.getSelection(); 
    }else if(document.getSelection){ 
    t = document.getSelection(); 
    }else if(document.selection){ 
    t = document.selection.createRange().text; 
    } 
    return t; 
} 

//bind a mouseup event handler to document 
example.Selector.mouseup = function(){ 
    var st = example.Selector.getSelected(); 
    if(st!=''){ 
    //display yout tooltip or popup here 

    } 
} 

$(document).ready(function(){ 
    $(document).bind("mouseup", example.Selector.mouseup); 
}); 

這裏的工作示例http://jsfiddle.net/chemouna/k6yVC/

0

對不起,我沒有時間來寫一個整體的東西,但是你可能能夠使用一個mouseup的某種組合用window.getSelection()事件監聽器在鼠標上抓取選定的文本。從那裏你可以找到它的父元素,並附加一個div絕對定位關閉選定的文本。

相關問題