【问题标题】:Update elements to show real-time changes in "contentEditable" element [duplicate]更新元素以显示“contentEditable”元素的实时变化[重复]
【发布时间】:2015-07-30 07:01:46
【问题描述】:

我有 3 个元素:

<h1 class="1" contenteditable="true">ELEMENT</h1>
<h1 class="2">ELEMENT</h1>
<h1 class="3">ELEMENT</h1>

由于类“1”的元素将contenteditable 设置为true,因此我需要确保它们都具有相同的值并在编辑内容时相互更新。

例如,如果我输入 FOO,所有其他元素都将更改为“FOO”。

我尝试使用一些 JQuery 来执行此操作,但我没有运气。

$(".1").change(function() {
    $(".2").text($(this).val());
    $(".3").text($(this).val());
});

任何帮助将不胜感激,因为我对 JQuery 和 JS 还是新手。

【问题讨论】:

  • 1. change 事件不会为 contenteditable 元素触发。您可以改用input 事件。 2. &lt;h1&gt; 在您的示例中没有价值 - 请改用 $(this).text()。 3.如果脚本放在&lt;h1&gt;之前,用document.ready包裹代码。 Fiddle.

标签: javascript jquery


【解决方案1】:

你可以试试on('input', function() { }) 代码改动很少

input 在通过用户界面更改元素的文本内容时发生。

$(".1").on('input',function() {
    $(".2").text($(this).text()); // set .text() instead .val()
    $(".3").text($(this).text());// set .text() instead .val()
});

IE 版本

不支持

Example

【讨论】:

  • 感谢您的回答!它工作得很好,我刚刚发现有另一个问题回答了这个问题,所以它被标记为重复。
  • @TheOnlyOneAround 欢迎,我不知道,直到我看到第一条评论。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-14
  • 2018-06-21
  • 1970-01-01
  • 1970-01-01
  • 2022-07-08
相关资源
最近更新 更多