除输入字段外,基于keyCode运行keyup function()?

时间:2017-08-22 06:08:51

标签: javascript jquery

我想在博客上添加一个快捷按钮。某些按钮的各自功能由以下代码定义:

<input type="text" placeholder="abcd test"/>

上面的代码效果很好。但是有一点问题。如果我们在输入字段中输入文本,则此代码将发生干扰。我们可以只在输入字段外运行代码吗?

例如:

"abcd test"

如果我们输入文字s, t, and c,它会多次显示警告。这是因为有按钮{{1}}。 如何修复此代码?

1 个答案:

答案 0 :(得分:2)

防止这种情况的一种简单方法是检查输入或文本区域是否聚焦:

&#13;
&#13;
$(document).keyup(function(cfunc) {
    if ($("textarea, input").is(":focus")) { return; }
    if (cfunc.keyCode == 83) {
        alert("S button");
    }
    if (cfunc.keyCode == 84) {
        alert("T button");
    }
    if (cfunc.keyCode == 67) {
        alert("C button");
    }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" />
<br />
<textarea>hey</textarea>
&#13;
&#13;
&#13;