Определите, кто вызвал функцию - PullRequest
0 голосов
/ 30 мая 2018

У меня есть вопрос, я не уверен, как этого добиться с помощью Javascript.

У меня есть страница, например, с 2 полями ввода, прямо сейчас я выполняю "onKeyUp", вызывая функцию ипередача параметра того, кто вызывает функцию.

Можно ли просто вызвать функцию, и изнутри функции узнать, какое поле вызвало ее?

Пример:

<input name="q1" id="q1" onkeyup="mirar('q1')" type="text" />
<input name="q2" id="q2" onkeyup="mirar('q2')" type="text" />

Измените его на что-то вроде

<input name="q1" id="q1" onkeyup="mirar()" type="text" />
<input name="q2" id="q2" onkeyup="mirar()" type="text" />

Ответы [ 3 ]

0 голосов
/ 30 мая 2018
function mirar()
{
    alert("caller is " + mirar.caller);
}

Или было бы приемлемо, если бы они все еще передавали параметр, но тот же параметр?

<input name="q1" id="q1" onkeyup="mirar(event)" type="text" />
<input name="q2" id="q2" onkeyup="mirar(event)" type="text" />

function mirar(event) { 
    alert(event.target.nodeName);
}
0 голосов
/ 30 мая 2018

Вы можете просто передать this, чтобы сослаться на это в функции, чтобы узнать, из какого элемента функция на самом деле вызывается:

function mirar(el){
  console.log('Id:', el.id)
}
<input name="q1" id="q1" onkeyup="mirar(this)" type="text" />
<input name="q2" id="q2" onkeyup="mirar(this)" type="text" />
0 голосов
/ 30 мая 2018

EventTarget должен предоставить то, что вам нужно.

...