Вам необходимо использовать собственный метод javascript focus()
.Вы не можете использовать это непосредственно для объекта jQuery, потому что этот объект не ссылается только на элемент DOM.
Селектор $('#bubble_logged')
вернет объект jQuery, который содержит все элементы с идентификатором 'bubble_logged.Должен быть только один, но jQuery не волнует.Итак, нам нужно найти первый (и единственный) элемент в этой коллекции.Вы можете сделать это, используя $('#bubble_logged').get(0)
или $('#bubble_logged')[0]
.Как только вы это сделаете, у вас будет ссылка на элемент DOM, который вы искали.
Итак, мы добавляем .focus()
, чтобы переместить фокус на этот элемент.$('#bubble_logged').get(0).focus();
Обратите внимание, что это попытается сфокусировать элемент #bubble_logged.Если это div, это ничего не даст.Если вы пытаетесь сфокусировать элемент внутри этого контейнера, вам нужно вместо этого вызвать focus.
Для метода .hover()
jQuery вы предоставляете ему две анонимные функции.Первый - это обработчик события hoverIn, а второй - обработчик события hoverOut.Я считаю, что вы хотите, чтобы всплывающее окно исчезло, а затем установите фокус.Для этого поместите обе эти логические части в первый обработчик событий.
$('.disabled').hover (
function () {
$('#bubble_logged').fadeIn(300, function(){
//this is executed once the fadein is complete
$('#bubble_logged')[0].focus();
});
},
...
);
Затем, когда вызывается метод hoverOut, вы, вероятно, захотите fadeOut всплывающего окна.Просто добавьте следующее.
$('.disabled').hover (
...
function () {
$('#bubble_logged').fadeOut(300);
}
);
Окончательный сценарий будет выглядеть следующим образом.
$('.disabled').hover (
function () {
$('#bubble_logged').fadeIn(300, function(){
//this is executed once the fadein is complete
$('#bubble_logged')[0].focus();
});
},
function () {
$('#bubble_logged').fadeOut(300);
}
);