【发布时间】:2012-10-21 02:21:04
【问题描述】:
我有以下 jQuery 摘录:
Tselector.mouseup = function() {
var sel = getSelectionCharOffsetsWithin(document.getElementById("base"));
//...
}
每当我在带有id=base 的div 标签中选择文本时,释放鼠标按钮时都会触发上述功能。 getSelectionCharOffsetsWithin(element) 是一种解析选择的方法(我需要它来执行进一步的步骤)。
我现在要做的是弹出一个工具提示,显示我可以对选择进行哪些操作。 (对于熟悉iOS的人来说,它类似于我在Web浏览器中选择文本时的功能。)
问题是 jQuery 需要一个 DOM 元素来执行操作。 例如使用tipsy时:
$('#foo').tipsy();
工具提示与具有id=foo 的div 标记相连。
在触发mouseup 函数时,我的所选文本没有这样的元素,因此我无法将我的选择与工具提示联系起来。
是否有可能直接调用 jQuery 函数而不连接到 DOM 元素(例如,将工具提示与鼠标位置连接)? 如果没有,是否可以使用在我的事件上创建和连接但未永久存储在 HTML 代码中的临时 DOM 元素做一个解决方法?
这里有一个小提琴来证明这一点: http://jsfiddle.net/noplacetoh1de/bYNmb/
感谢您的建议!
【问题讨论】:
-
必须有一个对象可以连接,即使是文档或窗口。
-
假设我想将它连接到我的鼠标位置,这可能吗?我将如何用 jQuery 来定义它?
-
鼠标不是节点或对象,它不能绑定事件。它只是与浏览器交互,然后浏览器解释点击或移动发生的位置并适当地触发事件。如果您希望每次鼠标按钮从向下变为向上时触发事件,请将该事件绑定到文档。
标签: javascript jquery tipsy