【问题标题】:Mouse events inside an editable div element可编辑 div 元素内的鼠标事件
【发布时间】:2011-11-21 18:51:03
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: javascript html events editor mouse


    【解决方案1】:

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

    【讨论】:

    • 谢谢 Ben,但是如果标签不止粗体和斜体怎么办?应该为每一个注册点击事件?
    • @Milad,我认为它没有缺点,因为无论您有多少标签,总有一种方法可以使用 javascript 附加事件。这可能是很多代码,但它会完成工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多