2

我有一个工具面板,当管理员用户登录到站点时会显示它。调色板是可拖动的(通过 jQueryUI.draggable),我希望它记住页面/刷新之间的位置......是否有这样做的标准方法,或者我应该使用的插件,或者我需要自己动手(通过饼干或其他东西)?

4

3 回答 3

4

Cookie 是一个不错的选择 - 您可以像这样使用PPK 的功能

$('#palette')
     .css({ top: readCookie("palletteY")*1, left: readCookie("palletteX")*1 })
     .draggable({ stop: function (event, ui) {
         createCookie("palletteX", ui.position.left, 100);
         createCookie("palletteY", ui.position.top, 100);
     } });
于 2009-08-25T13:34:26.413 回答
1

我不知道这样做的插件或标准(尽管它们很可能存在),但无论如何它并不是一个非常复杂的操作。Cookies 是实现它的一种方式。

我存储这种类型的客户端状态的首选方法是设置一个回调函数,该函数通过 Ajax 将新状态传递给服务器。然后,我可以为所欲为。通常,我会将其存储在会话中,但有时我会决定某些内容应该永久保留并将其从会话中移动到数据库中。拥有这个存储的服务器端可以让您轻松地进行更改。我建议首先通过 Ajax 回调将其存储在会话中,然后在页面加载时检索它。

于 2009-08-25T13:30:27.230 回答
1

我认为cookies是一个很好的解决方案。这里甚至还有一个 jquery cookie插件您可以将坐标保存在停止事件的 cookie 中。当页面更改时,您可以检查 cookie 是否存在,如果存在则更改可拖动的 css。

您可以将它保存在数据库中的服务器上,但这对我来说似乎有点矫枉过正。因为您将不得不更改您的架构。

Kevin 建议使用unload 事件来保存坐标。这样您就不必在每次拖动停止时都写入 cookie。

于 2009-08-25T13:32:58.893 回答