javascript - 在带参数的函数中获取事件对象

标签 javascript

因此,当您专注于某个元素时,我会在页面上添加一个 keydown 监听器,但当您不在该元素上时,我想将其删除。这工作正常,但我找不到将事件对象(e.preventDefault() 所需)传递到此函数中的方法。以下是我的代码的相关片段:

// Named function for keydown listener (I need to pass the line 
// and layer objects into the function)
function keydownListener(line, layer) {
    e.preventDefault();
    // ... using the line and layer for various things ...
}

// adds event listener when you click on specific element
some_element.addEventListener('click', function() {(
    window.addEventListener('keydown', keydownListener(line, layer));
});

// removes event listener when you click on anywhere else (not real code. just to 
// demonstrate the idea)
anything_else.addEventListener('click', function() {
    window.removeEventListener('keydown', keydownListener);
});

有没有办法将事件对象传递给带有其他参数的函数?

最佳答案

您可以尝试在点击事件触发时将事件传递给 keydown 监听器

function handler(e)
    keydownListener(line, layer, e)
};

// adds event listener when you click on specific element
some_element.addEventListener('click', function() {
    window.addEventListener('keydown', handler)
});


// Named function for keydown listener (I need to pass the line 
// and layer objects into the function)
function keydownListener(line, layer, e) {
    e.preventDefault();
    // ... using the line and layer for various things ...
}

关于javascript - 在带参数的函数中获取事件对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23481618/

相关文章:

javascript - 想在jquery中实现单面翻书动画

javascript - 从回调中调用 asyncwait

javascript - "this"引用如何在以下函数中传输

javascript - Nodejs 消息队列 vs 宏任务队列

javascript - 事件相机 FirefoxOS

javascript - 用户输入任意数字但只能存储可被 3 整除的数字并显示回来

javascript - 具有可变值的 Json 响应

javascript - 在 React 组件中使用 index.html 中包含的脚本

javascript - 在 Django 模板语言中检索 URL

javascript - 内联和非内联 JavaScript 之间的不同行为