是否有可能在選定的文本末尾位置div如彈出式/工具提示莫名其妙?正在頁面上選擇文本,而不是在輸入或textarea中。頂部圖層上的位置div(如彈出窗口/工具提示)在選定的文本末尾
編輯:我想我需要澄清,我已經有了textselect事件,我只是想確定所選文本的位置。
EDIT2:我意識到,事件本身具有pageX屬性和pageY cooridnates,所以我只是能夠抓住這一點,用它來定位我的彈出
是否有可能在選定的文本末尾位置div如彈出式/工具提示莫名其妙?正在頁面上選擇文本,而不是在輸入或textarea中。頂部圖層上的位置div(如彈出窗口/工具提示)在選定的文本末尾
編輯:我想我需要澄清,我已經有了textselect事件,我只是想確定所選文本的位置。
EDIT2:我意識到,事件本身具有pageX屬性和pageY cooridnates,所以我只是能夠抓住這一點,用它來定位我的彈出
採取文字的偏移頂部,你想放的彈出以上,並且通過在彈出 http://jsfiddle.net/UuGtm/3/
$("#popup").css("top",parseInt($("#text").offset().top)-parseInt($("#popup").height());
我沒有設置#text或任何可以獲取位置的地方,只是在頁面上可能存在任何地方的選定文本。 – DavidW 2012-02-25 15:07:20
這只是一個例子......你可以在頁面中取任何你想要的元素,如果它可以幫助你 – 2012-02-25 15:09:46
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);
});
對不起,我沒有時間來寫一個整體的東西,但是你可能能夠使用一個mouseup
的某種組合用window.getSelection()
事件監聽器在鼠標上抓取選定的文本。從那裏你可以找到它的父元素,並附加一個div
絕對定位關閉選定的文本。
當你說「選定的文本」時,你的意思是用戶用鼠標選擇的文本,即? – mariogl 2012-02-25 15:10:51
@mariogl是這就是它 – DavidW 2012-02-25 15:32:57