Я собираю инструмент, который позволяет людям дважды щелкать и оставлять сообщения в любом месте HTML-страницы с помощью jQuery. Он наткнулся на камень преткновения, связанный с позиционированием сообщений.
Код, который я сейчас тестирую:
$('body').bind('dblclick', function(e) {
var message = $('<div class="message">Form here</div>').css({
'left' : e.pageX,
'top' : e.pageY
});
$(this).append(message);
});
Это создает новое «сообщение» в позиции щелчка мыши. Хотя это работает до некоторой степени, как только размер окна браузера изменяется, «сообщение» перемещается из позиции. Поскольку в конечном итоге я надеюсь сохранить сообщения (и извлечь их), не идеально, чтобы они загружались в разных местах для каждого пользователя в каждом браузере. Я хочу, чтобы сообщения прикреплялись к макету страницы, даже если эта страница использует медиазапросы.
Мое понимание проблемы заключается в том, что мне нужно расположить сообщения относительно ближайшего элемента, на котором пользователь щелкнул. Вопрос в том. Как мне это?
Любые советы или подсказки будут с благодарностью.
Обновление 04/07/11
Большинство ответов, которые я получил ниже, не совсем то, что я ищу. Я загрузил пример моей страницы в JSfiddle , чтобы показать вам мои настройки. Проблема здесь заключается в том, что сообщения прикрепляются в относительном положении, поэтому при изменении размера окна браузера сообщения перемещаются вместе с содержимым.
Например. Если я прикрепляю сообщение ко второму абзацу на странице, как заставить это сообщение придерживаться этого абзаца, независимо от ширины браузера / устройства. Насколько я могу судить, мне нужно установить ближайший элемент уровня блока (или элемент с идентификатором или классом), который можно использовать для позиционирования сообщения относительно.
Надеюсь, что проясним вопрос и спасибо за все ваши предложения.