检测JavaScript事件类型

8

我的javascript中有一个函数OPEN,当用户失去输入框的焦点或按下Enter键时会调用它。

然后在OPEN()函数内部,根据是由blur还是keypress触发,会分别调用两个不同的函数。

对于keypress,我是这样做的。

        if (e.keyCode==13) ENTER_FX();

如何为 BLUR 进行此操作?

谢谢。

更新:

我发现应该是 e.type=="focusout"。

所以 focusout 是正确的词,而不是 blur 吗?

3个回答

12

可运行的JSFIDDLE示例

e.type

提供给你这些信息。

function OPEN(e) {
    if (e.type !== "blur") {
        if (e.keyCode === 13) {
            ENTER_FX();
        }
    }
    else {
        ENTER_FX();
    }
}

这取决于你附加它的方式... 如果你将它附加到 onfocusout,那么它肯定会报告事件类型为 focusout,blur 也是同样的情况。 - jondavidjohn
我将它附加到了一个模糊事件上,通过使用backbone.js API。但无论如何,它起作用了。谢谢。 - William Sham

0

e.type 在这种情况下可能应该是 'blur'。


0

没有运气。在失焦时,除了if e.type下的内容之外,OPEN()中的所有其他内容都会执行... - William Sham
1
@William 这很奇怪。你可以尝试在事件处理程序中加入 alert(e.type) 或者 console.log(e.type) 吗? - Digital Plane

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接