0

我有以下 jQuery 摘录:

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

每次我在div具有上述功能的标签中选择文本时id=base,都会在释放鼠标按钮时触发。getSelectionCharOffsetsWithin(element)是一种解析选择的方法(我需要进一步的步骤)。

我现在要做的是弹出一个工具提示,向我显示我可以对选择做什么的选项。(对于那些熟悉 iOS 的人来说,它类似于我在 Web 浏览器中选择文本时的功能。)

问题是 jQuery 需要一个 DOM 元素来执行操作。例如,当使用Tipsy时:

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

工具提示与div具有id=foo.

触发该mouseup功能时,我选择的文本没有这样的元素,因此我无法将我的选择与工具提示联系起来。

是否有可能在不连接到 DOM 元素的情况下直接调用 jQuery 函数(例如,将工具提示与鼠标位置连接)?如果没有,是否可以使用正在创建并连接到我的事件但未永久存储在 HTML 代码中的临时 DOM 元素来解决问题?

这是一个证明这一点的小提琴:http: //jsfiddle.net/noplacetoh1de/bYNmb/

感谢您的任何建议!

4

1 回答 1

0

我认为这是可能的。使用您的sel变量创建一个临时跨度,首先拆分 HTML。使用 substr() ( http://www.w3schools.com/jsref/jsref_substr.asp )。然后在您的选择周围放置一个跨度。When the selection hides, you should get the innerHTML of the span but it back in it's place using the sel variable again, and then destroy it.

我认为这在 mootools 顺便说一句要容易得多。也许你可以设置一个我们可以继续的小提琴?

于 2012-10-31T15:20:10.343 回答