这样做有好办法吗?你能将原始值以及新值发送到jquery / javascript函数吗?将旧值保留在某个全局变量中只是感觉有点混乱。
编辑:上下文代码
<input type='number' onchange='foo(...)'>
...
<script type=text/javascript>
function foo(...){
if(old > new){
alert('decreased');
}else{
alert('increased');
}
}
</text>
答案 0 :(得分: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();
您也可以代替this.getAttribute('value') === this.value
使用this.defaultValue === this.value
(如此JS Fiddle demo),this.defaultValue
是DOM-ready元素的原始值。
参考文献: