gpt4 book ai didi

javascript - 如何从事件监听器获取增加或减少值

转载 作者:行者123 更新时间:2023-12-01 02:09:12 24 4
gpt4 key购买 nike

如何检查输入数量是否随监听器增加或减少?

我查看了整个事件,没有找到显示输入是否增加或减少的属性或方法。

我知道我可以从 event.target.step 获取步数,但我需要查看增加值来查看它是增加还是减少。

我不想向我的作用域添加新的全局变量。

我的目标是制作一个比例锁定按钮。

enter image description here

enter image description here

这是我的代码:

    dataIntepretor.oninput = function(event){ // click on a input
console.log('event: ', event);
const element = event.target;
const numberPad = event.data;
const value = element.value;
const key = element.id;
const key2 = element.attributes.id2 && element.attributes.id2.value; //array id
asignSessionValue(session,key,value,key2);
if(element.attributes.id2){// if is a array props, look for ratioLock
const lock = document.getElementById(`${key}_lock`).checked;
if(lock){
asignSessionValue(session,key,Number(element.step),~~!key2,true);
//const element2 = document.querySelectorAll(`#${key}`)[~~!key2];
}
}
refresSpriteSession(objSprite,session);
};
};

最佳答案

好吧,您需要创建一个新变量,每次触发事件时其值都会被覆盖,如下所示:

var previousValue = 0; // Let's set the initial value to 0

document.getElementById("myInput").oninput = function()
{
// You can do something at this moment if you want

if(this.value > previousValue)
{
// Value has been increased
}
else
{
// Value has been decreased
}

previousValue = this.value;
}

否则,如果您不想创建全局变量,那么也许您可以在该输入对象上设置自己的属性,该属性将仅与该输入对象绑定(bind),并且每次触发事件时,而不是更新该属性全局变量的值,您可以简单地更新该自定义属性的值。每当触发事件时,您都可以使用 this.propertyNameevent.target.propertyName 来引用该属性。让我向您展示如何做到这一点:

var inputField = document.getElementById("myInput");

inputField.previousValue = 0;

inputField.oninput = function()
{
// You can do something at this moment if you want

if(this.value > this.previousValue)
{
// Value has been increased
}
else
{
// Value has been decreased
}

this.previousValue = this.value;
}

希望这对您有帮助。请在评论中告诉我:)

关于javascript - 如何从事件监听器获取增加或减少值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49867271/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com