我正在组合一个工具,它允许人们使用 jQuery 在 HTML 页面上的任何位置双击并留下消息。它遇到了与消息定位有关的绊脚石。
我目前正在测试的代码:
$('body').bind('dblclick', function(e) {
var message = $('<div class="message">Form here</div>').css({
'left' : e.pageX,
'top' : e.pageY
});
$(this).append(message);
});
这会在鼠标点击的位置创建一个新的“消息”。虽然这在一定程度上有效,但只要调整浏览器窗口的大小,“消息”就会移出位置。由于我最终希望保存消息(并检索它们),因此将它们加载到每个浏览器上的每个用户的不同位置并不理想。即使该页面使用媒体查询,我也希望将消息附加到页面布局。
我对这个问题的理解是,我需要将消息相对于用户单击的最近元素定位。问题是。我该怎么做?
任何提示或提示将不胜感激。
2011 年 4 月 7 日更新
我在下面得到的大多数答案并不是我真正想要的。我已将我的页面示例上传到 JSfiddle,以向您展示我的设置。这里的问题是使消息附加在相对位置,以便在调整浏览器窗口大小时消息会随着内容一起移动。
例如。如果我将消息附加到页面上的第二段,无论浏览器/设备宽度如何,我如何让该消息与该段保持一致。据我所知,我需要建立最近的块级元素(或具有 ID 或类的元素),可用于定位消息的相对位置。
希望能解决问题并感谢您的所有建议。