使用选项卡按钮切换时,Jquery返回新焦点

时间:2016-06-08 14:28:12

标签: javascript jquery input focus

我有一个在我的页面上的元素之间更改焦点时添加/删除类的函数。

当用鼠标单击切换焦点时,会产生所需的效果但是当使用制表符按钮切换时,它似乎在切换到新元素之前读取焦点?

HTML:

 <div class="text-input">
    <label>First Name</label>
    <input placeholder="">
</div>

<div class="text-input">
     <label>First Name</label>
    <input placeholder="">
</div>

JS:

$(document).ready(function () {
    $("body").click(function () {activateInput($(this))});
    $('body').keydown(function(e) {
         var code = e.keyCode || e.which;
        if (code == '9') {activateInput($(this))}
    });
});


function activateInput(passThis) {
    $(".text-input input, .text-input label").removeClass("active");
    if ($(".text-input input").is(":focus")) {
    $(":focus").parent().children("label, input").addClass("active");
    }
}

小提琴: https://jsfiddle.net/4kdj7Luc/

1 个答案:

答案 0 :(得分:0)

使用keyup

&#13;
&#13;
$(document).ready(function () {

    $("body").click(function () {activateInput()});
    $('body').keyup(function(e) {
        var code = e.keyCode || e.which;
        if (code == 9) {activateInput();}
    });
});


function activateInput() {
    $(".text-input input, .text-input label").removeClass("active");
    $(':focus').parent().children("label, input").addClass("active");
}
&#13;
&#13;
&#13;