【发布时间】:2018-08-15 15:03:56
【问题描述】:
在元素中,我有一些文本,当突出显示文本并检索选择时,会像菜单一样发生事件。
当我点击其他一些文本时,菜单消失,但如果我点击没有文本的元素之外,菜单仍然存在。
我意识到文本也会改变光标,我想知道如何做到这一点,以便当用户点击远离突出显示的文本时,菜单也会消失,而不仅仅是在突出显示或点击新文本时。
$('element').on('mouseup', function (e) {
var sel = window.getSelection();
var range = sel.getRangeAt(0);
if (sel != '') {
//event happens when text is selected
} else {
//event should go away
}
});
回答
$(document).on('mouseup', function (e) {
var sel = window.getSelection();
var range = sel.getRangeAt(0);
if (sel != '') {
//event happens when text is selected
} else {
//event should go away
}
});
我只是将事件更改为在页面的最外层元素上发生。
【问题讨论】:
-
正如 sMilEy 建议的那样,您应该添加一个事件以在元素失去焦点时触发。 developer.mozilla.org/en-US/docs/Web/Events/mouseout 应该可以工作
-
如果您解决了问题,请包含您的新代码,以便以后发现此问题的人可以看到修复。
标签: javascript html css