jquery – 仅当输入未处于焦点时才进行keydown

目前我设置了一个功能,当按下页面中的左右箭头键时前进和后退:
$(document).keydown(function (e) {
    if ($(e.target).is('input')) { return false
    } else if (e.keyCode == 37) {
        $(".pageback").click();
        return false;
    }
    if (e.keyCode == 39) {
        $(".pagenext").click();
        return false;
    }
});

这允许使用箭头键来回浏览,但是当遇到文本框时,箭头键仍处于活动状态.

虽然这会在文本框处于焦点时停止keydown函数,但它也不允许在输入区域中输入任何内容.

救命!

谢谢

解决方法

“it also does not allow anything at all to be typed into the input area.”

问题是这部分:

if ($(e.target).is('input')) { return false

从事件处理程序返回false时,它会阻止事件的默认行为.

将其更改为返回true或仅返回(没有值),并且将允许默认行为(在这种情况下,在字段中键入).

(注意:您可能还想检查textarea元素,而不仅仅是输入.)

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...