К примеру есть два элемента <input type="range">, которые вызывают одну и туже функцию (с помощью oninput=""). В зависимости от того, какой именно input вызвал функцию, будет выполняться определенный код.
Подскажите, как узнать какой именно input вызвал функцию (и не обязательно input, просто взял как пример). Может есть какие то методы или что то подобное?
Варианта 2:
addEventListner, тогда внутри слушателя this будет указывать на элемент, к которому привязан слушатель. Так же в этом режиме слушателю передается аргумент "контекст события", у которого есть поле target, указывающий на элемент, который инициировал событие.
btn1.addEventListener('click', handler)
btn2.addEventListener('click', handler)
function handler(e) {
console.log("this =", this)
console.log("e.target =", e.target)
}
<button id="btn1">btn 1</button>
<button id="btn2">btn 2</button>
this:function handler() {
console.log("this =", this)
}
<button onclick="handler.apply(this)">btn 1</button>
<button onclick="handler.apply(this)">btn 2</button>
можно передавать параметр в функцию обработки события
function someFunction(id, value) {
console.log(id, value);
}
<input type="range" oninput="someFunction(1, this.value)" />
<input type="range" oninput="someFunction(2, this.value)" />
Продвижение своими сайтами как стратегия роста и независимости