Поддержка jQuery.data через окна
Я пытаюсь обновить веб-приложение, которое использует jQuery.data()
функция для хранения информации. Обновление включает в себя рефакторинг интерфейса, так что существуют отдельные окна для разных типов информации, вместо того, чтобы использовать просто div на одной странице. Из-за того, как работают некоторые плагины, вызывающий их код был перемещен в разные окна для запуска в том окне, где они необходимы. Тем не менее, многие из обратных вызовов, используемых этими плагинами, используют .data()
чтобы найти сохраненную информацию, но затем код, который устанавливает данные, хранящиеся .data()
находится в родительском окне, и он, похоже, не прикрепляет данные к DOM, он хранит их где-то, прикрепленном к окну, поэтому в дочернем окне обратные вызовы больше не могут найти данные, которые они ищут.
Будет ли это работать с помощью call(parent, DOMelement.data);
? И есть ли более аккуратный способ справиться с этим?
Заранее спасибо!
1 ответ
Спасибо за все предложения. Это не было использование куки, потому что информация не должна быть сохранена вне текущего сеанса. Все взаимодействие осуществляется через JavaScript, нет запросов к серверу, пока вы не сохраните в конце. Окна, которые должны сообщаться, все открыты одновременно, следовательно, call()
предложение. Я в конечном итоге решить это с помощью .prop
на месте .data
так как синтаксис и функциональность были практически идентичны. Это напрямую связывает данные с DOM в соответствующем окне. $_SESSION работает только тогда, когда каждая страница запрашивается с сервера.
Таким образом, если вы пытаетесь хранить информацию, к которой должны обращаться несколько окон одновременно или без обновления страницы, вы можете использовать jQuery .prop()
функция для прикрепления данных к DOM. .attr()
может также работать, но .prop()
позволяет напрямую получать доступ к значениям с помощью. нотации. .data
функции предназначены для предотвращения циклических ссылок, но они хранят информацию где-то, что означает, что вы не можете получить к ней доступ без использования .data
который хранит информацию отдельно для каждого контекста.