Jquery: фокус на div не работает

После завершения функции ajax. в сообщениях о успехе я фокусируюсь на конкретном div. Но это не работает. Мой код здесь.

$j.ajax({
    url:"<?php echo admin_url( 'admin-ajax.php' ); ?>",
    type:"POST",
    data:"action=press_release&page="+0+"&do_task="+do_task+"&id="+id+"&module="+module,
    success:function(data){
        $j("#com_cont").show();
        $j("#com_cont").html(data);
        $j("#loading_heart").hide();
        $j("#focus_point").focus();
    }
});

Это код не работает (не фокусируясь на div: $j("#focus_point").focus();

Ответ 1

вы можете использовать приведенный ниже код для приведения фокуса в div, в этом примере страница прокручивается до <div id="navigation">

$('html, body').animate({ scrollTop: $('#navigation').offset().top }, 'slow');

Ответ 2

a <div> можно сфокусировать, если он имеет атрибут tabindex. (значение может быть установлено на -1)

Например:

$("#focus_point").attr("tabindex",-1).focus();

Кроме того,, рассмотрите настройку outline: none !important;, чтобы она отображалась без прямоугольника фокусировки.

var element = $("#focus_point");
element.css('outline', 'none !important')
       .attr("tabindex", -1)
       .focus();

Ответ 3

Фокус не работает на divs по умолчанию. Но, в соответствии с этим, вы можете заставить его работать:

Событие фокуса отправляется элементу когда он получает фокус. Это событие неявно применимый к ограниченному набору элементов, таких как элементы формы (<input>, <select> и т.д.) и ссылок (<a href>). В последнем браузере версии, событие может быть расширено до включают все типы элементов явно устанавливая свойство tabindex. Элемент может получить фокус с помощью команд клавиатуры, таких как клавишу Tab или щелчками мыши на элемент.

http://api.jquery.com/focus/