У меня есть страница с кучей предметов. У каждого элемента есть виджет, который при нажатии вызывает всплывающее меню опций в стиле YUI. Пока это работает нормально.
Я использую вызовы jQuery / ajax для вставки новых элементов на страницу, толкая существующие элементы вниз. Элементы вставляются правильно, но теперь мне нужно каким-то образом обновить позиции всплывающих меню элементов, чтобы они соответствовали новым позициям виджетов, которые их вызывают. Насколько я могу судить, они вычисляются как координаты страницы и сохраняются вместе с объектами меню при визуализации страницы и не обновляются автоматически при вставке AJAX.
Вот где моя проблема: я попробовал несколько jQuery, которые для каждого меню пересчитывают пункт меню, делают removeListener (), чтобы убить старое меню, и addListener (), чтобы вставить то, что должно новый. Это корректно обновляет позиции меню, когда они вызываются, но ломает что-то еще: если я нажимаю на виджет и поднимаю меню, а затем щелкаю где-то еще на странице, меню остается на экране, а не исчезает. Я могу нажать на другие виджеты, и они тоже появятся. Примечания: в консоли не отображаются ошибки; нажатие клавиши ESCAPE во время представления меню по-прежнему правильно скрывает меню.
Должен быть способ сделать это, но я заблудился. Есть какие-нибудь подсказки? Возможно, все, что мне действительно нужно сделать, это обновить контекстную информацию меню; Есть ли способ сделать это без последовательности слушателя удаления-и-добавления, которая, кажется, облажается? Спасибо!