javascript - 使用 .keydown() 返回 div id?
问题描述
我不确定我的措辞是否正确,但我想做的是让一个函数在事件div
上返回 a 的 id 。keydown
假设我的 HTML 是:
<div class="pad" id="snare" data-key="97"></div>
<div class="pad" id="kick" data-key="98"></div>
本质上我希望我的 JS 做这样的事情:
function handlekeydown(e) {
console.log("data-key: " + e.keyCode);
if (e.keycode == $(".pad").data("key")) {
return this.id
}
}
我可以编写一个switch
语句,每个都keycode
返回一个与 id 同名的变量,但这会破坏将它包含在我的 HTML 中的目的。
我将如何编写一个函数来搜索匹配的div
a然后返回它的 id?data-key
keycode
解决方案
根据问题
How would I write a function to search a div for a data-key that would match the keycode?
你可以这样做:
function handlekeydown(e) {
var id;
var element = $('[data-key="' + e.keyCode + '"]');
if (element.length) {
id = element[0].id;
}
}
但是如上所述,您不能从处理程序返回 id,您可能想从使用 id 的事件处理程序调用方法。
function processId(id) {
console.log(id);
}
function handlekeydown(e) {
var element = $('[data-key="' + e.keyCode + '"]');
if (element.length) {
processId(element[0].id);
}
}
推荐阅读
- node.js - 如何使用 NodeJS 在 GCP 中已创建/现有的 VM 中运行 bash 脚本?
- r-markdown - 是否可以在不同的 rMarkdown 模板之间共享块
- c++ - 初始化静态字段
- python - 提高 lmfit 中多个数据集拟合的速度?字符串调用限制
- java - 有没有办法通过 jdbc 唯一标识列?我的意思不是通过模式表列
- vue.js - 在 nuxt 中出现此错误:[vuex] 不要在突变处理程序之外改变 vuex 存储状态
- algorithm - 列表集的规范形式
- python-3.x - 在 Python 中,如何更改我的代码以删除字典中的双引号
- css - Move vue-particles component to the back and use it as the background
- java - 我应该如何为游戏实施等待通知方法?