Сложное использование гобеленовых зон - измененные идентификаторы
Существуют некоторые проблемы, возникающие при использовании javaScript для работы с гобеленами 5.3.6, CSS, jQuery (с использованием tapestry5-jquery 3.3.3).
Когда я устанавливаю страницу с зонами (я использую вкладки jQueryUI), а затем переключаюсь с одного на другой, обновляя некоторые созданные мной компоненты, некоторые элементы теряют свой стиль из-за измененных идентификаторов тегов. Я исправил это с помощью встроенных стилей, но теперь возникла другая проблема.
Я связал некоторые события с некоторыми элементами с помощью jQuery. После переключения зоны некоторые элементы теряют свои события. Я решил это с привязкой событий внутри функции onActivate. Кроме того, существуют проблемы с селекторами jQuery при изменении идентификаторов элементов, но это можно решить с помощью условных селекторов.
Есть ли более элегантный способ совладать с такими проблемами в гобеленах? То, что у меня есть сейчас, очень запутанно и усложняет мой проект.
2 ответа
Я пытаюсь решить мою проблему, отключив флаг t: ajax из компонента ajax.tabs, что исключило бы использование зон. Кажется, это решило мою проблему, но вопрос остается открытым, потому что я бы хотел, чтобы в некоторых других случаях было включено поведение Ajax.
Если ваши зоны не созданы внутри циклов, вы можете установить как t:id
и id
зоны должны быть равны:
<t:zone t:id="myId" id="myId" />
это прекратит присваивать гобелену новый идентификатор при обновлении зоны.