Jquery在不丢失焦点的情况下附加到
当按下Jquery在不丢失焦点的情况下附加到,jquery,append,focus,lostfocus,Jquery,Append,Focus,Lostfocus,当按下tab键保持焦点时,我想将li元素移动到上一个siblingli中。但当我移动时,它会失去焦点,并在元素上执行focusout .bind("keydown", function(e) { var keyCode = e.keyCode || e.which; if (keyCode == 9) { e.preventDefault(); console.log('Tab pressed: movi
tab
键保持焦点时,我想将li
元素移动到上一个siblingli
中。但当我移动时,它会失去焦点,并在元素上执行focusout
.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;
})
请提供一些解决方案来移动元素而不丢失焦点。我找不到jquery方法。如评论中所述,应手动完成
Unbind focusout -> append -> trigger focus -> bind focusout
取消绑定是要完成的,因为在我的代码中,我正在删除已附加到其他地方的元素,因此javascript被破坏。您不能将一个
附加到另一个。。。它不是有效的html。您还需要解除绑定,然后再次绑定focusout
,并手动触发focus
。提供一个为什么不?它起作用了。因为它是无效的。。。。可能正在使用的浏览器中工作。。。而且它可能没有被放置在你认为它是的地方,或者它不会在所有浏览器中都这样做。这里有一些基本的规则来说明哪些标签是允许的,哪些是不允许的。我使用的节点在工作的地方使用铬。请自己阅读