2012-08-08 3 views
3

Итак, я работаю над клавиатурой, как на Tumblr, так и на 9GAG (вы можете перемещаться по сообщениям с помощью клавиш J и K).Как сохранить идентификатор div, когда идентификатор уже используется?

Мой подход:

Пользователь нажимает J (следующий) ключ

Javascript использует JQuery Viewport, чтобы выяснить, какие "Jump" -ID в настоящее время: видовом

Javascript добавляет +1 на "Jump" -ID

Javascript получает положение увеличенной "Джамп" -id, прокручивается там

Теперь проблема заключается в следующем:

<div class="content jump" id="<?php echo $id; ?>"> 

Я уже определил идентификатор дел. Так это выглядит следующим образом:

<div class="content jump" id="1225"> 
<div class="content jump" id="1299"> 
<div class="content jump" id="1206"> 
<div class="content jump" id="1345"> 

Однако для того, чтобы иметь возможность прыгать в правильном порядке, я как-то нужно хранить дополнительную идентификацию, может быть, как это ...

<div class="content jump" id="1225" jump="1"> 
<div class="content jump" id="1299" jump="2"> 
<div class="content jump" id="1206" jump="3"> 
<div class="content jump" id="1345" jump="4"> 

Это просто мое воображение. Должен быть способ обойти это. Если у вас есть лучшее решение проблемы J/K, вы также можете сказать мне (возможно, у Tumblr или 9GAG есть намного лучший?)

+0

Просто добавьте еще один класс для идентификатора перехода? – peacemaker

ответ

7

Вы можете использовать атрибуты data-. Например:

<div class="content jump" id="1225" data-jump="1"> 

Вы можете получать эти данные с помощью

$('#1225').data('jump'); 
+0

Как я могу получить эти данные в Javascript? –

+0

@JonasKaufmann Это все еще атрибут, вы можете получить его по имени или если вы используете jQuery, вы можете сделать это, как в примере выше. – TheZ

+0

Эй, это интересно. Является ли это специфичной для JQuery вещью или вообще поддерживаемой частью Javascript? И это подтверждается? –

0

Вы можете применить произвольное число классов для данного объекта. Таким образом, просто меняя первый тег на что-то вроде:

<div class="content jump jump-1" id="1225"> 

Должен дать вам необходимый крючок. И это действительно проверяет. :)

+1

Просто взбираться на мое мыло. Люди значительно перечеркнули преимущество скорости поиска id.В современном браузере разница между $ ('# jump1') и $ ('. Jump1') составляет около 2, и оба они занимают всего лишь наносекунды. – Jason

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