在突出显示和取消突出显示文本时,使用javascript管理mousedown事件

在突出显示和取消突出显示文本时,使用javascript管理mousedown事件,javascript,javascript-events,mouseup,Javascript,Javascript Events,Mouseup,G'day 我一直在研究一些逻辑来处理用户突出显示的文本。我发现马克·科利(Mark Koli)的一个很好的例子 我在以下位置创建了一个工作示例: 我对特定实例的代码有如下问题: 选择一些文本。 对话框出现。 关闭对话框。 现在单击而不拖动以清除高亮显示的文本。 对话框出现。 关闭对话框。 文本被取消选择。 在我的逻辑中,我没有使用对话框,只是举个例子,我插入了一个带有图像的div,以允许用户执行一个操作 问题是,第二次点击实际上是为了清除文本,但出于某种原因,浏览器在firefox下清除文本之

G'day

我一直在研究一些逻辑来处理用户突出显示的文本。我发现马克·科利(Mark Koli)的一个很好的例子

我在以下位置创建了一个工作示例:

我对特定实例的代码有如下问题:

选择一些文本。 对话框出现。 关闭对话框。 现在单击而不拖动以清除高亮显示的文本。 对话框出现。 关闭对话框。 文本被取消选择。 在我的逻辑中,我没有使用对话框,只是举个例子,我插入了一个带有图像的div,以允许用户执行一个操作

问题是,第二次点击实际上是为了清除文本,但出于某种原因,浏览器在firefox下清除文本之前启动了鼠标启动事件。这显然不是弹出对话框的问题,但根据我的逻辑,我最终添加了多个div,因此文本上有多个浮动图像

是否有办法确定事件将导致突出显示的文本被删除?理想情况下,我宁愿在浏览器清除文本后触发事件

提前感谢,如果是一个新问题,我很抱歉,我真的很粗糙,当谈到javascript

:编辑:

我应该解释我如何使用它的用例

用户高亮显示页面上的文本 一个图标出现在他们刚刚松开鼠标按钮突出显示文本的地方 用户选择图标,这将打开一个表单,输入一些详细信息,以便在此时根据高亮显示的文本标记图标 用户提交表单ajax,表单关闭。 页面显示,高亮显示的文本现在不高亮显示,但添加了额外的标记。 或

用户高亮显示页面上的文本 一个图标出现在他们刚刚松开鼠标按钮突出显示文本的地方 用户单击页面上的其他位置以删除突出显示的文本和图标。 用户提交表单后,表单关闭。 当选择图标时,我对取消选择所选文本没有任何问题,但问题是如果他们单击页面的另一部分,它会重新激活鼠标事件,从而在所提供的示例中不合适的情况下双击图标或对话框。

在这里^

我刚刚更改了这段代码,以清除鼠标向上事件上的选择

if (selectedText != '') {
    alert("You selected:\n" + selectedText + "\n");
    window.getSelection().removeAllRanges();
}

或者,如果希望在用户选择文本后保持文本高亮显示,可以使用相同的window.getSelection.removeAllRanges调用mousedown函数;每次单击鼠标时清除选择的代码。

在firefox中,在第4步之后,对话框不会出现。它只是取消了对JackalopeZero的感谢,不幸的是,这对我来说似乎很奇怪。我将编辑我的原始问题以使其更清晰,但突出显示的文本为用户提供浮动图像的上下文。文本必须保持突出显示,直到他们选择不突出显示,如果这是有意义的。啊,我没有看到你的编辑JackalopeZero,当我发布前一个。我会试试看,看看效果如何。我有一种感觉,沿着这些思路可以找到答案,我只是希望我不必处理鼠标事件。只需添加这个事件:James.Selector.mousedown=function{window.getSelection.removeAllRanges;}$document.bindmousedown,James.Selector.mousedown;谢谢JackalopeZero,这个例子非常好用。应用它的唯一困难是我不使用绑定,因为我需要事件对象。不过我想我可以从窗口观看比赛,所以应该没问题。