如何确定哪个按钮调用了函数

How to determine which button called a function?

本文关键字:调用 函数 按钮 何确定      更新时间:2023-09-26

我怎么知道是哪个按钮导致该函数运行?具体来说,如果我想将函数的值设置为与按钮的值相等?

var foo_button = document.getElementById("foo_button");
var bar_button = document.getElementById("bar_button");
foo_button.onclick = foo_or_bar;
bar_button.onclick = foo_or_bar;

然后在稍后的函数中:

function foo_or_bar(){
    //this should return the value of the button that was pressed (in this case "foo" 
    //or "bar"
    return button_that_sent_me;
}

有没有一种方法可以检测是哪个按钮的值导致了这种情况的发生?

您可以按照@A1rPun的说法使用this,或者通过window.event访问按钮,这在使用内联onclicks和其他未注释的做法时也有帮助:

JS-

function foo_or_bar() {
  console.log(window.event.target.value);
  console.log(this.value);
}

HTML

<button id="foo_button" value="foo">internals</button>

提供以下控制台日志:

foo
foo

"this"发送与元素相关的所有信息触发事件:

<button onclick="foo_or_bar(this.id);" id="foo">Foo</button>
function foo_or_bar(id) {
    button_that_sent_me = id;
}