Проблема с scrollIntoView и фокус

0
var mediaIdForFocus = '<?php echo $this->mediaIdForFocus; ?>';
if(mediaIdForFocus)
$('#flagimg'+mediaIdForFocus).get(0).scrollIntoView().addClass("selectedMedia"); // highlight class
$('.logoTxt').focus();

Я пытаюсь настроить прокрутку div $('#flagimg'+mediaIdForFocus) затем выделить фокус элементу $('.logoTxt')

Вид прокрутки настраивается на элемент $('#flagimg'+mediaIdForFocus) но $('.logoTxt').focus(); не дает фокуса. Это происходит только в первый раз. Если я обновляю страницу, она работает так, как ожидалось.

Пожалуйста, помогите мне.

Теги:
zend-framework

2 ответа

0
Лучший ответ

$(document).scrollTop(0); сделал трюк

Код приведен ниже

// for setting the focus to selected media if it is chosen from media page.
var mediaIdForFocus = '<?php echo $this->mediaIdForFocus; ?>';
if(mediaIdForFocus)
   $('#flagimg'+mediaIdForFocus).get(0).scrollIntoView(); // highlight class
$(document).scrollTop(0);
  • 0
    $ (Документ) .scrollTop (0); просто идет в начало страницы. Ваше утверждение выше не имеет смысла, если вы добавите '$ (document) .scrollTop (0);'
  • 0
    @JacobvanLingen van Lingen $ ('# flagimg' + mediaIdForFocus) .get (0) .scrollIntoView (); отрегулирует полосу прокрутки $ ('# flagimg' + mediaIdForFocus) и установит фокус на $ ('# flagimg' + mediaIdForFocus), затем $ (document) .scrollTop (0); прокручивает весь документ наверх
0

Проблема заключается в возможности кодирования $('#flagimg'+mediaIdForFocus).get(0).scrollIntoView().addClass("selectedMedia");

Функция .get(0) возвращает простой элемент, поэтому оболочка jQuery исчезла. .addClass() является функцией jQuery, выполнение jQuery-функций в простых элементах невозможно.

Поэтому сначала добавьте класс, а затем прокрутите элемент в своем представлении: $('#flagimg'+mediaIdForFocus).addClass("selectedMedia").get(0).scrollIntoView();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню