2012-10-31 20 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。也许你可以设置一个我们可以继续的小提琴?