1
我试图调试一个使用Firebug的函数,因为JavaScript getModifierState()
方法似乎不工作。下面是函数的开头:getModifierState()作为错误返回
function kbdEq() {
$(document).on ('keypress', function (e) {
e.preventDefault();
debugger;
var x = e.charCode || e.keyCode;
// etc.
跳进Firebug是简单的,但试图测试
e.getModifierState('Alt')
(或任何其他键盘事件作为一个参数,带或不带引号)在这个结果从萤火虫消息:
e.getModifierState不是函数
我使用Firefox 44.0.2。
我在这里做了什么错误(大概)在这里?
这很对,谢谢。 1)getStateModifier比e.altKey等强大得多,因为它可以传递一个变量。 2)通过阅读有关事件objet的jQuery文档或阅读jQuery的动作,我无法想出正确的语法(e.originalEvent.getModifierState ...)您在哪里找到它?更好的来源甚至比在这里得到正确的答案更好! –
附录:从jQuery开始,正确的做法是在一个依赖事件的函数开始时重新声明e.originalEvent。 –
我只是将'e'对象记录到控制台,并查看了它在[* DOM *面板](https://getfirebug.com/wiki/index.php/DOM_Panel)中的属性。当我看到'originalEvent'时,我清楚这是“真正的”。它也在* OtherProperties *下的jQuery文档中提到,但我同意这种描述可能会更好。你忘了提及的是'getModifierState()'是[KeyboardEvent' API的一部分](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Methods)。因此我现在已经把它和你的问题联系起来了。 –