在另一个contenteditable div的keyup()上的textarea上模拟keyup()

时间:2013-10-11 06:01:45

标签: jquery

这是一个场景:

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

    我发现,只有在textarea上进行物理点击后才会触发keyup()。最初,如果我在textarea上做.trigger('keyup')没有任何反应。但如果我点击textarea,然后在contenteditable div中键入任何内容,并在textarea上执行.trigger('keyup'),textarea的keyup事件会被触发,一切都像魅力一样。

    任何指示都将非常感谢。提前谢谢。

4 个答案:

答案 0 :(得分: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/

答案 1 :(得分: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();
});

答案 2 :(得分:1)

你试过

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

答案 3 :(得分:0)

如果您希望在内容可编辑和textarea中都有确切的事件,您可以像这样实现:

$('#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>