【问题标题】:Identify who triggered a function识别谁触发了函数
【发布时间】:2018-05-29 21:21:46
【问题描述】:

我有一个问题,不知道如何使用 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" />

【问题讨论】:

  • “有没有什么办法只调用函数,从函数内部知道是哪个字段调用的?”没有。

标签: javascript function events triggers onkeyup


【解决方案1】:

您可以简单地通过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" />

【讨论】:

    【解决方案2】:

    EventTarget 应该提供你需要的东西。

    【讨论】:

      【解决方案3】:
      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);
      }
      

      【讨论】:

      • 第一个不会给你输入字段元素。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-08
      • 1970-01-01
      • 1970-01-01
      • 2020-09-24
      • 2022-06-23
      相关资源
      最近更新 更多