Вы можете поддерживать необработанную объектную модель или граф объектов, присоединяя корневой объект к чему-либо в DOM или, альтернативно, используя систему данных jQuery , чтобы сохранить ее.
Дажессылаться на элементы DOM вашего пользовательского интерфейса в этой централизованной модели, чтобы уменьшить сложность двух разных моделей.
Для jQuery плагинов весьма характерно централизовать состояние так, как вы ищете, внутри системы данных jQuery.
raw JavaScript
document['myObjectGraph'] = {
first: 1,
second: 'two,
images: [
document.getElementById('img1'),
document.getElementById('img2')
],
items: [
'a',
'b',
another = { /* building out the model...*/ };
]
};
или система данных jQuery (та же идея)
jQuery.data(document.body, 'myObjectGraph', {
first: 1,
second: 'two,
images: [
$('#img1'),
$('#img2')
],
items: [
'a',
'b',
another = { /* building out the model...*/ };
]
});
Фактически это создает управляемую модель в одном месте (которую вы выбираете для дизайна) - она представляет состояние ваших значков, сегментов и всего остального;его можно сериализовать с помощью JSON и отправить на сервер с помощью вызова ajax ;и ваши элементы пользовательского интерфейса могут даже быть перестроены / обновлены из него.
Эта идея связана с затратами на дополнительное косвенное обращение и усилия по синхронизации исходной модели с моделью пользовательского интерфейса.