Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 可编辑div元素中的鼠标事件_Javascript_Html_Events_Editor_Mouse - Fatal编程技术网

Javascript 可编辑div元素中的鼠标事件

Javascript 可编辑div元素中的鼠标事件,javascript,html,events,editor,mouse,Javascript,Html,Events,Editor,Mouse,我正在开发一个简单的html文本编辑器,我使用一个将contenteditable设置为true的div来实现这一点 我有一些按钮(粗体,斜体,…),让用户修改文本。我想根据每个命令的状态更新这些按钮的状态,因此如果光标位于粗体文本内,则按钮的图像应显示粗体已打开 我可以通过keyup事件实现这一点,因此在每次keyup上,我都会检查所有命令的状态并更新按钮 但是,我希望在用户单击div的一部分时也能这样做。我尝试了该div的mouseup和click事件,但它们仅在选择div时触发,而不是在选

我正在开发一个简单的html文本编辑器,我使用一个将contenteditable设置为true的div来实现这一点

我有一些按钮(粗体,斜体,…),让用户修改文本。我想根据每个命令的状态更新这些按钮的状态,因此如果光标位于粗体文本内,则按钮的图像应显示粗体已打开

我可以通过keyup事件实现这一点,因此在每次keyup上,我都会检查所有命令的状态并更新按钮

但是,我希望在用户单击div的一部分时也能这样做。我尝试了该div的mouseup和click事件,但它们仅在选择div时触发,而不是在选择其内容时触发


是否有方法在div元素中捕获鼠标事件,以便我可以更新按钮?

如果我正确理解您的问题,只需为文档中的所有b或strong标记(无论您使用哪个)创建一个单击事件。如果div之外有粗体文本,请使用带有css样式的span
font-weight:bold

谢谢Ben,但是如果有比粗体和斜体更多的标签呢?是否应该为每一个事件注册click事件?@Mild,我看不出它有什么坏处,因为无论有多少标记,总有一种方法可以使用javascript附加事件。这可能需要很多代码,但它可以完成工作。