我有两个<textarea></textarea>
和一个<div></div>
。
如果我更改了#first
textarea中的文字,则会在#second
textarea中复制此文字。我如何捕捉事件,如果#second
textarea中的文字发生变化,我会更改div #needle
中的文字?哪个活动?
事件change keyup paste input propertychange
不起作用..
我不想在第一次活动中使用强制性事件$('#second').change()
。
<textarea id="first"></textarea>
<textarea id="second"></textarea>
<div id="needle"></div>
<script>
$('#first').keyup(function(){
$('#second').val($(this).val());
});
$(document).on('change keyup paste input propertychange', '#second', function(){
$('#needle').text($(this).val());
});
</script>
答案 0 :(得分:1)
input
事件就足够了。
我建议你创建一个像changeText
这样的函数,即使在第二个文本区域中触发input
时也会调用它,当你更新其中的文本时。
$('#first').on("input", function(){
changeText.call(
$('#second').val( // <- You update the second textarea value
$(this).val() // with the text from the first textarea
) // <- This will return the second textarea jQuery object
);
});
$(document).on('input', '#second', changeText);
function changeText() {
// here `this` will be the second textarea jQuery object
$('#needle').text($(this).val());
}
答案 1 :(得分:0)
你应该使用“改变”事件:
$('#second').on('change', function(){
$('needle').append($(this).val()); // this appends the value
});
请注意,我们使用的是append()
方法。如果我们使用html()
或text()
,我们会在每个更改事件上覆盖#needle
值,这可能看起来很奇怪和不正常(并且可能无法使用)。
答案 2 :(得分:0)
您可以使用命名函数而不是使用匿名函数。
function onChangeSecond()
{
$('#needle').text($(this).val());
}
你可以在第一和第二个Textarea的keyUp事件中使用onChageSecond()。
答案 3 :(得分:0)
此事件在jquery中未创建..