当前位置: 首页 > 知识库问答 >
问题:

如何检测按下了哪个按钮

桓风史
2023-03-14

我想知道在多个按钮的列表中按下了哪个按钮。例如,如果按下了第二个按钮,则代码会检测到按下第二个向下的按钮,并返回类似于 [1] 的内容。但是,我不知道该怎么做。当我搜索时,jQuery参与其中,但我没有使用jQuery。代码如下:

var table = document.getElementById("Table");
function CreateRow() {
  var CoreButton = document.createElement("Button");
  var ButtonText = document.createTextNode("Add");
  CoreButton.appendChild(ButtonText);
  document.body.appendChild(CoreButton);
  var NewRow = table.insertRow(-1);
  var NewName = NewRow.insertCell(-1);
  var AddRow = NewRow.insertCell(-1);
  AddRow.id = "AddRow";
  AddRow.className = "AddRow";
  AddRow.appendChild(CoreButton);
}
<html>
<table id = "Table">
<button onclick="CreateRow()">Add Button</button>
</table>

我尝试使用EventListner,通过将EventListner添加到创建的每个按钮,但这并不能区分单个按钮。请注意,每个按钮都有一个id为AddRow和一个类AddRow
如果有人能帮忙,谢谢!

共有2个答案

傅长恨
2023-03-14
js prettyprint-override">var table = document.getElementById("Table");
function CreateRow(obj) {
  var row = parseInt(obj.getAttribute('data-row'));
  var CoreButton = document.createElement("Button");
  CoreButton.classList.add('btn');
  CoreButton.setAttribute('data-row', row+1);
  var ButtonText = document.createTextNode("Add");
  CoreButton.appendChild(ButtonText);
  CoreButton.addEventListener('click',function(){CreateRow(CoreButton)}, false);
  document.body.appendChild(CoreButton);
  var NewRow = table.insertRow(-1);
  var NewName = NewRow.insertCell(-1);
  var AddRow = NewRow.insertCell(-1);
  AddRow.id = "AddRow";
  AddRow.className = "AddRow";
}
<table id = "Table">
<button data-row='1' onclick="CreateRow(this)">Add Button</button>
</table>
高承望
2023-03-14

您可以从1开始为每个按钮添加数据属性之类的内容,并设置如下eventListener

这将在文档上设置eventListener,如果单击目标与.AddRow类的元素不匹配,则返回。如果匹配,则根据e.target.dataset访问数据属性。

document.addEventListener('click', e => {
    if(!e.target.matches('.AddRow')) return;
    console.log(e.target.dataset.id);
});

按钮示例

<button class="AddRow" data-id="1"></button>
 类似资料:
  • 我正在测试JFXtras(v8.0-r5)的Monology FX,但我被它卡住了! 有人能告诉我如何检查用户按下的对话框中的按钮是什么吗?我试了很多方法,但一点运气都没有。

  • 我知道以前可能有人问过这个问题,但我似乎找不到适合我情况的合理答案。 我有一个表单,表单中有多个提交按钮,我需要知道按下了哪个按钮。 表单内部的一个小代码段可能如下所示: fmt:消息部分只是考虑了客户端的语言并将单词放在按钮上。 到目前为止,我在submit按钮上添加了一个动作处理程序,并在表单上添加了一个隐藏的input元素,告诉我哪个按钮被按下了,但是我需要在不依赖javascript的情况

  • 问题内容: 我是Java的初学者,一直在研究如何检测用户是否按下了某个键(例如箭头键)。显然,有很多方法可以做到这一点,我发现此方法应该对我有用: 问题是我不知道什么是KeyEvent。 当我调用该方法并给我举个例子时,谁能告诉我在括号中加什么? PS:不要把我发送到其他站点,我可能已经看过了,他们只是让我更加困惑… 问题答案: public class KeyEvent extends Inpu

  • 我试图构建一个GUI,它有许多按钮(JButton)/下拉项(JMenuItem),当按下每个包含字母的按钮时,相关的字母将添加到标签中。 我无法识别按下了哪个按钮。你能给我一个关于如何做到这一点的提示吗?

  • 我是Java /JavaFX的新手(昨天晚上开始)。我正在构建一个动态GUI(crud)读取MySQL数据库。 我设法在表中显示数据并在每一行旁边添加一个按钮。 由于按钮的数量是可变的,我只想定义一个通用的均衡器。 问题是每当我使用event.getSource()(它是一个ActionEvent)并显示它时,我都会得到类似“Button[id=0, styleClass=按钮”的东西。 问题1:

  • 问题内容: 我需要知道现在正在按下哪个键。我不是要捕获一些特定的键来触发事件或类似的事情, 我想知道现在按下了哪些键并显示它们的列表。 我还需要捕获特殊键,例如F1 … F12,Shift,Alt,Home,Windows等。基本上,键盘上的所有键都是如此。 我该如何在python中做到这一点?如何捕获键盘事件? 编辑 就是这样,您知道我不是要创建键盘记录程序。我正在尝试做一个诊断工具(我在笔记本