您好,我正在监听 html 对话框的焦点事件,并尝试检查当前焦点元素是否是我的“对话框”类的一部分。请参阅下面的代码。
$(document).ready(() => {
document.addEventListener("focus", (event) => {
var dialog = document.getElementsByClassName("dialog table-storage-dialog");
var dialogOpen: boolean = true;
var currentElement: any = event.target;
if (dialogOpen && !dialog[0].contains(a)) {
event.stopPropagation();
$("#dialog table-storage-dialog").focus();
}
}, true);
});
但是这段代码抛出编译错误“属性‘包含’在类型‘元素’上不存在”。知道这段代码有什么问题吗?
此代码确保当您在 html 对话框打开时按住 Tab 键时,焦点不会离开对话框到背景窗口。它留在对话框中
最佳答案
DOM 元素没有 contains 方法,正如错误所说。我认为您打算改用 jQuery。
改变这一行:
var dialog = document.getElementsByClassName("dialog table-storage-dialog");
为此:
var dialog = $(".dialog, .table-storage-dialog");
关于javascript - typescript 错误 :Property 'contains' does not exist on type 'Element' . ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36777266/