保存可拖动div jQuery的位置

时间:2013-02-14 23:03:08

标签: javascript jquery cookies save

我有一个网站,我正在制作小部件。那些小部件是可拖动的。我想知道如何保存小部件的位置(如果它被隐藏或不被[禁用或启用]),并加载位置,如果它再次加入网站时是否隐藏(使用相同的用户) 。感谢您的时间,如果您不理解我的需要,请发表评论。

2 个答案:

答案 0 :(得分:2)

我假设您的小部件位于<ul>,每个小部件一个<li>,这是很正常的。

能够定位
您需要首先按特定顺序排列小部件。想象一下,您已经完成了艰苦的工作并获得了用户可以拥有的数据。硬编码,让您的模块正确显示。更改数据,查看模块是否按预期显示。
用户需要拖动它们。 jQuery draggable是你的朋友。

证明您可以获取数据
能够在页面移动后从页面获取小部件的顺序。 draggable示例显示.serialize()函数。
您还需要知道哪个打开了哪个打开了。您可以使用jQuery .map()创建另一个列表,如果您提出要求,可以返回其ID和状态。
警告屏幕,写入文档,或者最好使用console.log()

与服务器交互
如果您只想使用cookie进行测试,可以跳过此步骤,因为浏览器可以设置这些 但是,如果您希望将其与用户的信息一起存储,以防他们退出,请启动新会话或使用您需要使用数据库的另一台计算机。
您需要了解使用ajax将数据从浏览器发送到服务器。 jQuery是你的朋友。
您需要了解如何在数据库中存储用户信息。

恢复职位
您希望能够从非硬编码的列表中设置窗口小部件的位置,以便能够使用您保存的数据在页面加载时正确地排序窗口小部件。您在第一步中执行了此操作,但使用了硬编码数据。

答案 1 :(得分:1)

您需要做的是:
在给定时间保存状态。例如,当你改变它时。

$('#toBeDragableId').draggable({
   // options...
   drag: funciton(event,ui){
      theUserposition = ui.position;
   }
});

您需要以一致的方式保存theUserposition,例如数据库或使用Cookie或客户端存储。之后,您需要恢复它并在加载页面时进行设置。

Similar Question
Example using Cookies