首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否仅当键未在输入字段中按下时才绑定键(用于带有退格键的页面转换)?

是否仅当键未在输入字段中按下时才绑定键(用于带有退格键的页面转换)?
EN

Stack Overflow用户
提问于 2010-09-20 05:33:56
回答 2查看 423关注 0票数 1

我不知道为什么,但我已经让它工作了,但今天它停止工作了。基本代码是:

代码语言:javascript
复制
$(document).bind("keydown", function(e){
    if (e.keyCode) code = e.keyCode;         // für alle Browser
    else if (e.which) code = e.which;         // für ie
    if(code==8) {
    $("#outer-frame").fadeOut(400, function (){ //content fade-out
        history.back(-1); //gehe einen Schritt in der Browser-History zurück
});
    return false; // Browser bricht ab
}
});

我还有一个if语句,不知道了,它突然停止工作了。我希望退格键绑定到keydown并执行页面过渡效果。没有问题,只要我想防止整个事情被调用,如果用户在输入字段中点击退格键,他将被重定向到他的历史记录中的最后一页。

请帮帮我!如果有什么东西突然停止工作,那就太烦人了。

我使用了css中的:focus选择器,比如if ( $("input:focus") ...

只想补充说,浏览器切换不是来自我,绑定事件,如果(code==8)是我的编码,淡入淡出和历史,但也没有什么独特的,你会发现很多例子,所以我在研究不同的浏览器行为期间发现了许多例子(我发现了一些类似的代码,但我认为那是jQuery……jQuery太棒了!)。

我对Ken Egozi和SimpleCoder提供的解决方案感到非常高兴,真的要感谢你们的帮助!

EN

回答 2

Stack Overflow用户

发布于 2010-09-20 05:46:40

如果在文本区、文本框或密码框中按了键,则需要继续(返回true)。

添加

代码语言:javascript
复制
if ($(e.target).is("textarea, input[type=text], input[type=password]")) return true;

到您的处理程序,在if (code==8)位之前

票数 1
EN

Stack Overflow用户

发布于 2010-09-20 05:54:09

我会这样做:

代码语言:javascript
复制
$(document).bind("keydown", function(e) {
    if ((e.target.nodeName.toLowerCase() != "input" && e.target.nodeName.toLowerCase() != "textarea") && e.which == 8) {
        $("#outer-frame").fadeOut(400, function() {
            history.back(-1);
        });
        return false; // unterbricht die Verarbeitung durch den Browser
    }
});

另外,只想让您知道,jQuery会自动规范化e.which属性,因此:

代码语言:javascript
复制
if (e.keyCode)
    code = e.keyCode; // für alle Browser
else if (e.which)
    code = e.which; // für ie
if (code == 8) {

可以写成

代码语言:javascript
复制
if (e.which == 8) {
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3747563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档