4

这是场景:

  1. 我有一个内容可编辑的 div。我还有一个 textarea,在 .keyup() 上发生了一些事情。
  2. 我需要这样,在内容可编辑div的keyup()上,将在contenteditable div中输入的文本复制到textarea,然后通过jquery触发textarea的keyup事件。

到目前为止我所取得的成就:

我发现,直到对文本区域进行物理点击,才会触发 keyup()。最初,如果我在 textarea 上执行 .trigger('keyup') 什么都不会发生。但是,如果我单击 textarea,然后在 contenteditable div 中键入任何内容,然后在 textarea 上执行 .trigger('keyup'),则 textarea 的 keyup 事件会被触发,并且一切都像魅力一样工作。

任何方向将不胜感激。提前致谢。

4

4 回答 4

4

不确定你的问题是什么。这工作正常:

var textarea=$('#editable_textarea');
var div=$('#editable_div');

div.on('keyup',function()
{
    textarea.text($(this).text()).trigger('keyup');
});

textarea.on('keyup',function()
{
    console.log('keyup!');
});

http://jsfiddle.net/W2P9t/

于 2013-10-13T20:15:42.003 回答
1

我没有完全理解你的问题,因为不幸的是你没有附加任何代码,但我希望这对你有用:

// listening for keyup-event in your content div
$(document).on("#mycontentdiv", "keyup", function() {
    // copy text from div to textarea
    $("#mytextarea").text($("#mycontentdiv").text());

    // trigger keyup-event on textarea
    $("#mytextarea").keyup();
});
于 2013-10-13T20:17:09.790 回答
1

did you try

$('#yourinput').keyup();

?

于 2013-10-13T20:35:17.277 回答
0

万一您希望在内容可编辑和文本区域中都有确切的事件,您可以像这样实现它:

$('#contentEditable').on('keyup', function(e) {
  $('textarea').text($(this).text());
  $('textarea').trigger(e);
});

$('textarea').on('keyup', function(e) {
  console.log(e);
});

HTML部分会是这样的。

<div id="contentEditable" contenteditable>Lorem ipsum</div>
<textarea></textarea>
于 2013-10-20T18:27:41.600 回答