Как обновить позиции меню yui после вставки ajax-страницы?

У меня есть страница с кучей предметов. У каждого элемента есть виджет, который при нажатии вызывает всплывающее меню опций в стиле YUI. Пока это работает нормально.

Я использую вызовы jQuery/ajax для вставки новых элементов на страницу, толкая существующие элементы вниз. Элементы вставляются правильно, но теперь мне нужно каким-то образом обновить позиции всплывающих меню элементов, чтобы они соответствовали новым позициям виджетов, которые их вызывают. Насколько я могу судить, они вычисляются как координаты страницы и сохраняются вместе с объектами меню при визуализации страницы и не обновляются автоматически при вставке AJAX.

Вот где моя проблема: я попробовал некоторый jQuery, который для каждого меню пересчитывает пункт меню, выполняет removeListener(), чтобы убить старое меню, и делает addListener(), чтобы вставить то, что должно быть новым. Это корректно обновляет позиции меню, когда они вызываются, но ломает что-то еще: если я нажимаю на виджет и поднимаю меню, а затем щелкаю где-то еще на странице, меню остается на экране, а не исчезает. Я могу нажать на другие виджеты, и они тоже появятся. Примечания: в консоли не отображаются ошибки; нажатие клавиши ESCAPE во время представления меню по-прежнему правильно скрывает меню.

Должен быть способ сделать это, но я потерялся. Есть какие-нибудь подсказки? Возможно, все, что мне действительно нужно, это обновить контекстную информацию меню; Есть ли способ сделать это без последовательности слушателя удаления-и-добавления, которая, кажется, облажается? Спасибо!

1 ответ

Решение

Все продолжает быть хорошо, как отмечено в обновлениях; Я объявляю это ответом.

Другие вопросы по тегам