1

有没有好的方法来做到这一点?您可以将原始值和新值发送到 jquery/javascript 函数吗?将旧值保留在某个全局变量中只是感觉有点混乱。

编辑:上下文代码

<input type='number' onchange='foo(...)'>

...

<script type=text/javascript>
function foo(...){
    if(old > new){
        alert('decreased');
    }else{
        alert('increased');
    }
}
</text>
4

1 回答 1

4

所以不要将它保存在全局变量中:

<input type="number" value="5" />

$('input[type="number"]').change(function () {
    if (this.getAttribute('value') === this.value) {
        // setting the original 'lastvalue' data property
        $(this).data('lastvalue', this.value);
    } else {
        // take whatever action you require here:
        console.log(this.value < $(this).data('lastvalue') ? 'decrement' : 'increment');
        // update the lastvalue data property here:
        $(this).data('lastvalue', this.value);
    }
}).change();

JS 小提琴演示

您也可以代替this.getAttribute('value') === this.value使用this.defaultValue === this.value(如在此JS Fiddle 演示中),this.defaultValue成为 DOM-ready 上元素的原始值。

参考:

于 2013-10-07T19:23:13.967 回答