0

我想在按下键时将li元素移动到上一个兄弟姐妹中并保持焦点。但是当我移动时,它会失去焦点并在元素上执行。litabfocusout

    .bind("keydown", function(e) {
        var keyCode = e.keyCode || e.which; 

        if (keyCode == 9) {
            e.preventDefault();
            console.log('Tab pressed: moving it');
            $(this).appendTo($(this).prev());

            return false; // ignore default event
        }})
       .focusout(function(e) {
        e.stopPropagation();

        console.log('focusout');
        if(isEmpty($(this)) && $(this).siblings().size() != 0)
        {
            $(this).remove();
        }
        return false;
    })

请提出一些解决方案来移动元素而不会失去焦点。

4

1 回答 1

1

我可以找到没有 jquery 方法可以做到这一点。正如https://stackoverflow.com/users/1175966/charlietfl在评论中提到的那样,它需要手动完成。

Unbind focusout -> append -> trigger focus -> bind focusout

取消绑定是要完成的,因为在我的代码中,我删除了已经附加到其他地方的元素,所以 javascript 被破坏了。

于 2017-05-20T17:13:58.480 回答