jQuery keyup只有影响textarea内容的键

law*_*wls 2 javascript jquery

如何使用jQuery检测textarea的值是否发生了变化?我当前正在使用keyup()但是这会触发每个键击当然,如果它是按下的箭头键或任何其他对textarea值没有影响的键,我不希望我的代码运行.

看一看:

$('textarea').keyup(function() {
     if (content was changed)
         // Do something
});
Run Code Online (Sandbox Code Playgroud)

我希望你明白.我怎么能以最好的方式做到这一点?我不想将当前值与旧值进行比较以检查更改,我希望这不是唯一的方法.

Vis*_*ioN 6

无论如何,最简单的方法是将旧值存储到数据中并进行每次检查keyup.解决方案很短,无论如何都可以使用.无需重新发明轮子.

$("textarea").data("oldValue", function() {
    return this.value;
}).keyup(function() {
    var $this = $(this);
    if (this.value !== $this.data("oldValue")) {
        // Do something

        $this.data("oldValue", this.value);
    }
});
Run Code Online (Sandbox Code Playgroud)

演示: http ://jsfiddle.net/vvbSj/