如何判断HTML文本区域何时被Javascript更改

如何判断HTML文本区域何时被Javascript更改,javascript,jquery,textarea,jquery-events,Javascript,Jquery,Textarea,Jquery Events,我正在使用的小部件修改HTML textarea元素。我需要知道那个元素什么时候被修改过,最好我也要隐藏那个元素。我正在使用jQuery,所以我自然尝试了$('#textarea_id').change()事件。但它从未被触发,因为我猜文本区域从未失去焦点 监视文本区域的最佳方法是什么,最好是隐藏的(CSS有display:none)?请不要告诉我setInterval…您可以使用全局变量来管理它 var text = ""; $('#textarea_id').bind("keyup pas

我正在使用的小部件修改HTML textarea元素。我需要知道那个元素什么时候被修改过,最好我也要隐藏那个元素。我正在使用jQuery,所以我自然尝试了
$('#textarea_id').change()
事件。但它从未被触发,因为我猜文本区域从未失去焦点


监视文本区域的最佳方法是什么,最好是隐藏的(CSS有
display:none
)?请不要告诉我
setInterval

您可以使用全局变量来管理它

var text = "";

$('#textarea_id').bind("keyup paste", function(e){
    if ($(this).val() != text)
    {
        // text changed
        text = $(this).val();
    }    
});

工作示例:

您可以使用全局变量来管理它

var text = "";

$('#textarea_id').bind("keyup paste", function(e){
    if ($(this).val() != text)
    {
        // text changed
        text = $(this).val();
    }    
});

工作示例:

我将使用
.keyup()
。如果您不希望事件每次按键都触发,请让它在每次按键时重新启动半秒计时器,并让计时器在用户停止键入时触发您希望发生的事情。你可以利用时间来满足自己的喜好。

我会使用
.keyup()
。如果您不希望事件每次按键都触发,请让它在每次按键时重新启动半秒计时器,并让计时器在用户停止键入时触发您希望发生的事情。你可以利用时间来满足自己的喜好。

可能有一些非跨浏览器解决方案,但不是真正的答案,但我建议看看小部件是否有自己的
更改
事件。
设置间隔
有什么错?这是显而易见的解决方案。除了在我的应用程序中链接到它之外,我无法访问小部件代码。setInterval的错误在于它是异步的,这需要我在UI中做更多的工作来处理它。。。而且很难看:)。当然,如果没有其他选项…可能会有一些非跨浏览器解决方案不是真正的答案,但我建议查看小部件是否有自己的
change
事件。
setInterval
有什么问题?这是显而易见的解决方案。除了在我的应用程序中链接到它之外,我无法访问小部件代码。setInterval的错误在于它是异步的,这需要我在UI中做更多的工作来处理它。。。而且很难看:)。当然,如果没有其他选项…查看值是否不同不是问题所在,它会监视值何时更改,并且当其他javascript代码修改textarea时,“keyup粘贴”不起作用。查看值是否不同不是问题所在,它会监视值何时更改和“keyup粘贴”当其他javascript代码修改textarea时不起作用。“keyup”在其他javascript代码修改textarea时不起作用。“keyup”在其他javascript代码修改textarea时不起作用。