【发布时间】:2013-11-21 02:06:53
【问题描述】:
单击菜单 li 选项时,我失去了对 contentEditable 的关注,因此当我尝试执行命令时,选择不再存在并且不会影响选择。如何在不添加输入的情况下解决此问题?
更新: ** jsFiddle **
HTML
<div contenteditable=true>
paragraph1<br/>
paragraph2<br/>
paragraph3
</div>
<div contenteditable=true>
paragraph4<br/>
paragraph5<br/>
paragraph6
</div>
<input type=button id=show value=ToggleMenu>
<ul id=submenu>
<li>p</li>
<li>h1</li>
<li>h2</li>
</ul>
Javascript
$("#show").on("click",function(){
$("#submenu").toggle();
});
$("#submenu").on("click","li",function(){ //when this is clicked, editable div loses focus.
document.execCommand("formatBlock", false, $(this).text());
console.log($(this).text(), "was clicked");
});
【问题讨论】:
-
我猜你最好的选择是use a button。
-
@Teemu 是的,我想是的,我试图避免这种情况,但无论如何谢谢。
-
您是否尝试在单击处理程序中的 execCommand 之前将 contenteditable 聚焦?
-
@rgthree 我不知道具体怎么做,因为页面中有好几个这样的容器,你有例子吗?
标签: javascript jquery contenteditable submenu execcommand