Jquery Don';单击其他元素时不要失去焦点
我正在为一个项目编写一个小型“就地编辑器”,但在保持焦点和模糊方面遇到了两个问题。我用小提琴更好地解释了我的问题: (1) 当您在Jquery Don';单击其他元素时不要失去焦点,jquery,focus,contenteditable,Jquery,Focus,Contenteditable,我正在为一个项目编写一个小型“就地编辑器”,但在保持焦点和模糊方面遇到了两个问题。我用小提琴更好地解释了我的问题: (1) 当您在contenteditable元素中单击时,会出现一个小工具栏。单击工具栏时,当前正在编辑的元素会在短时间内失去焦点。有没有办法避免这种情况?(这实际上是一个用户体验问题) (2) 当模糊时,工具栏应消失。但这会导致工具栏无法工作。如果单击工具栏上的某个内容,将发生blur事件。。。当用户单击工具栏时,不模糊的最佳实践是什么 提前感谢, 塞巴斯蒂安解决方案非常简单。
contenteditable
元素中单击时,会出现一个小工具栏。单击工具栏时,当前正在编辑的元素会在短时间内失去焦点。有没有办法避免这种情况?(这实际上是一个用户体验问题)
(2) 当模糊时,工具栏应消失。但这会导致工具栏无法工作。如果单击工具栏上的某个内容,将发生blur
事件。。。当用户单击工具栏时,不模糊的最佳实践是什么
提前感谢,
塞巴斯蒂安解决方案非常简单。。。只需添加一个超时“保护菜单”。更新了小提琴
protect: function (e) {
e.preventDefault()
return setTimeout(300)
}
你遇到了一个很深的问题:)一个Maanay在去体面的wysiwyg编辑器的路上
在CKEditor中,我们通过以下方式解决了此问题:
-首先,我们注册作为编辑器UI一部分的元素。第二,我们听关于这些元素的模糊/聚焦事件。第三,我们在模糊事件之后等待一段时间,因为焦点可能会在模糊事件之后触发。第四,我们触发自定义的fire/blur事件(在编辑器实例上,而不是在DOM元素上),工具栏之类的东西会在这些事件上侦听
第二部分,我相信我们在CKEditor 4 beta版中跳过了,就是将选择标记保留在可编辑的文本中。这是因为在大多数浏览器中,即使在单击工具栏后,选择(甚至在视觉上)仍保持在可编辑状态。也许这是因为我们使用了一些特殊的attributes/JS代码来阻止将选择移动到那里——不幸的是,我不知道
最后一件事是在“可编辑”中锁定选择。当你将焦点移到工具栏时,它不应该丢失,我相信IE和Opera在这里失败了。因此,我们在CKEDITOR.dom.selection
中有一些特殊的方法来锁定和恢复选择。监听器在可编辑窗口的focus/blur
上使用它们
您能否详细说明事件处理程序中的超时用法?感谢这是一个难以置信的解决方案^^我在我的代码库中寻找了2天,但无法解决此问题,这就像一个charme!!!