Законно ли создавать свои собственные атрибуты CSS? - PullRequest
4 голосов
/ 03 апреля 2009

Я работаю над оконным приложением для моего сайта. Прямо сейчас у меня есть каждое отдельное окно в теле сайта. Я добавляю новые окна, буквально добавляя соответствующий код в конец элемента body, и удаляю их, удаляя этот div. (Я использую jQuery для базовой архитектуры JavaScript.)

Я обнаружил, что для каждого окна я хочу иметь возможность хранить некоторые значения, которые не используются напрямую. Скажем, я максимизирую окно, я хотел бы сохранить его старую позицию и размер, чтобы, когда я максимизирую его, оно возвращалось к своей старой позиции, а не просто куда-то случайно. Поэтому мой реальный вопрос здесь заключается в том, будет ли законным создание пользовательских атрибутов CSS (прекрасно зная, что браузер их игнорирует), с единственной целью - хранить такую ​​информацию на индивидуальной основе? Или это будет незаконно, и я должен посмотреть на другую альтернативу?

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

Спасибо

Ответы [ 2 ]

8 голосов
/ 03 апреля 2009

Я бы использовал jQuery <strong>data()</strong> метод для хранения временных данных.

$('div#window').data('position', { x: 100, y: 200, width: 50, height: 50});
$('div#window').data('state', 'minimized');

Ссылки

Вы также можете сделать эти данные постоянными, сохранив их в файлах cookie или в сеансе на стороне сервера, и восстановите их на клиенте при загрузке страницы. Таким образом, положение и состояние окна будут сохранены, даже если пользователь перезагрузит страницу.

7 голосов
/ 03 апреля 2009

jQuery имеет малоизвестную функцию, которая называется data. С его помощью вы можете сделать это:

$('#mydiv').data('position', {x: 150, y: 300});

// later
var position = $('#mydiv').data('position');

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

...