我不确定我的措辞是否正确,但我想要做的是让一个函数在keydown
事件上返回一个div
的id。
假设我的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
,查找与data-key
匹配的keycode
,然后返回它的id?
发布于 2018-06-02 05:07:33
根据问题
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);
}
}
https://stackoverflow.com/questions/50650884
复制相似问题