使用 .keydown() 到 return div id?
Using .keydown() to return div id?
我不太确定我的措辞是否正确,但我想做的是在 [=15] 上有一个函数 return 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
returning 一个与 id 同名的变量,但这会破坏将它放在我的 HTML.
我将如何编写一个函数来搜索 div
匹配 keycode
的 data-key
然后 return 它的 ID?
根据问题
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;
}
}
但是如上所述,您不能 return 来自处理程序的 id,您可能想从使用 id 的事件处理程序调用方法。
function processId(id) {
console.log(id);
}
function handlekeydown(e) {
var element = $('[data-key="' + e.keyCode + '"]');
if (element.length) {
processId(element[0].id);
}
}
一个按键事件是一个键盘事件。
按键事件只会在文档的当前 activeElement 上触发。
你需要一种完全不同的方法——如果你决定用可能真正有效的方法来改变你当前的方法,我将提出一个解决方案建议。
p.s.: 我会更新同样的回复。
我不太确定我的措辞是否正确,但我想做的是在 [=15] 上有一个函数 return 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
returning 一个与 id 同名的变量,但这会破坏将它放在我的 HTML.
我将如何编写一个函数来搜索 div
匹配 keycode
的 data-key
然后 return 它的 ID?
根据问题
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;
}
}
但是如上所述,您不能 return 来自处理程序的 id,您可能想从使用 id 的事件处理程序调用方法。
function processId(id) {
console.log(id);
}
function handlekeydown(e) {
var element = $('[data-key="' + e.keyCode + '"]');
if (element.length) {
processId(element[0].id);
}
}
一个按键事件是一个键盘事件。
按键事件只会在文档的当前 activeElement 上触发。
你需要一种完全不同的方法——如果你决定用可能真正有效的方法来改变你当前的方法,我将提出一个解决方案建议。
p.s.: 我会更新同样的回复。