2012-10-31 46 views
0

我下面的jQuery摘錄:jQuery函數調用,而連接到DOM元素或連接到臨時DOM元素

Tselector.mouseup = function() { 
    var sel = getSelectionCharOffsetsWithin(document.getElementById("base")); 
    //... 
} 

每次當我選擇在div標籤文本與id=base上述功能將被觸發當釋放鼠標按鈕時。 getSelectionCharOffsetsWithin(element)是一個解析選擇的方法(我需要進一步的步驟)。

我想現在要做的是彈出一個工具提示,顯示我什麼我可以選擇做選擇。 (對於那些你誰是熟悉的iOS,當我選擇在Web瀏覽器的文本是類似的功能。)

的問題是,需要jQuery的DOM元素來執行操作。 例如使用tipsy時:

$('#foo').tipsy(); 

工具提示與具有id=foo一個div標籤連接。

當觸發mouseup函數時,我沒有這樣的元素用於選定的文本,因此我無法將我的選擇與工具提示連接起來。

是否有可能直接調用jQuery的功能,而無需對DOM元素的連接(例如,連接用鼠標位置的工具提示)? 如果沒有,是否有可能對正在創建並連接到我的事件的臨時DOM元素執行解決方法,但不會永久保存在HTML代碼中?

這裏是爲了證明這一點小提琴: http://jsfiddle.net/noplacetoh1de/bYNmb/

感謝您的諮詢!

+0

必須有一個對象才能連接,即使它是文檔或窗口。 –

+0

假設我想將它連接到我的鼠標位置,這可能嗎?我如何用jQuery定義這個? – noplacetoh1de

+0

鼠標不是節點或對象,它不能綁定事件。它只是簡單地與瀏覽器交互,瀏覽器然後解釋發生點擊或移動的位置並適當地引發事件。如果您希望每次鼠標按鈕從下往上都觸發一個事件,請將該事件綁定到文檔。 –

回答

0

我認爲這是可能的。使用您的sel變量創建一個臨時跨度,首先分割HTML。使用substr()(http://www.w3schools.com/jsref/jsref_substr.asp)。然後圍繞您的選擇進行跨度。當選擇隱藏時,您應該再次使用變量的innerHTML,但使用sel變量,然後將其摧毀。

我想這是很多easer在做mootools的BTW。也許你可以設置一個我們可以繼續的小提琴?