2010-08-13 6 views
2

У меня есть список элементов, которые я хотел бы иметь в фокусе, когда пользователь выбирает элементы. Я попытался вызвать .focus() с Jquery на этих объектах безрезультатно. Есть что-то, чего я не хватает? :)Прокрутка к элементу в списке

EDIT: У меня есть список (ul) элементов. Я перехожу к стартовому элементу и нажимаю клавиши со стрелками для продолжения выбора. Вверх и вниз. Мне бы очень хотелось, чтобы выбор смещения функционировал так, как если бы он находился в Finder или Windows Explorer. Прокрутка, когда выбран элемент, который не отображается (и вниз для одного и того же случая).

Есть ли какие-либо удобные плагины jQuery для обработки этого для меня?

EDIT2: Выяснил некоторые вещи и определил большую проблему.

Прямо сейчас я использую плагин jQuery под названием scrollTo. Я могу прокрутить элемент моего списка, используя этот плагин. Однако «прокрутка» к элементу означает, что теперь он является первым элементом в списке, что НЕ является желательным поведением. Выберите любое количество элементов в Finder или Explorer и убедитесь, что при переключении стрелки выберите элемент, который находится вне экрана, он прокручивает только одно место и не делает его верхним.

Легко исправить, конечно. ;) Я в настоящее время отслеживаю текущий элемент сразу за экраном сверху и текущий элемент в списке, который просто за кадром внизу. Однако, когда пользователь выбирает элемент из списка после прокрутки, я в настоящее время не могу сказать, какие элементы просто скрыты из виду, создавая тупик.

Любые идеи? : P

+0

Не совсем понятно, что вы хотите, можете ли вы опубликовать в каком-то html, с которым вы пытаетесь работать? –

ответ

3

Это не ясно из вашего вопроса, но если вы говорите об автоматической прокрутке страницы (или элемента), чтобы конкретный элемент находился в области просмотра, вы можете попробовать scrollTo plugin.

$.scrollTo('#something'); // scrolls the whole page so #something is in view 
$('#mydiv').scrollTo('#somethingelse'); // scrolls the (scrollable) div 

Edit: Ваш вопрос обновления обеспечивает немного больше понимание того, что вы ищете. Я не понимаю, какой метод вы используете для достижения выбора сдвига (или если вы действительно расширяете вопрос, чтобы спросить, как это сделать). Но, предполагая, что вы все еще просто спрашиваете о прокручиваемом фрагменте, я бы добавил прокручивающийся вызов в функцию, связанную с тем, какое событие (обычай?) Запускается, когда вы добавляете другой элемент списка в свой выбор.

Например, предположим, что вы запуская пользовательское событие под названием list_expanded каждый раз, когда <li> выбран, вы можете попробовать что-то вроде этого:

$(document).ready(function(){ 
    $('ul#mylist').delegate('li','list_expanded', function(){ 
    $(this).scrollTo(); 
    }); 
}); 

Очевидно, что вы можете также использовать «обычные» событие, как click , в зависимости от того, как работает ваше решение с множественным выбором.

+0

Большое спасибо за это. Любые советы о том, что использовать для установки идентификатора на лету? Я хочу увидеть идентификатор для определенного элемента, прокрутить его до этого элемента и затем отключить идентификатор. – bobber205

+0

Как узнать, к какому элементу вы хотите перейти? Нет смысла устанавливать и отключать идентификатор, так как вам сначала нужно определить элемент, к которому вы должны применить идентификатор. Вы можете использовать любой метод выбора jQuery для идентификации элемента. –

+0

У меня есть индекс, где в списке, который я хочу прокрутить. Я пытаюсь использовать детей, чтобы получить элемент, но он не работает, конечно.: P – bobber205

Смежные вопросы