我有一个网站,我正在制作小部件。那些小部件是可拖动的。我想知道如何保存小部件的位置(如果它被隐藏或不被[禁用或启用]),并加载位置,如果它再次加入网站时是否隐藏(使用相同的用户) 。感谢您的时间,如果您不理解我的需要,请发表评论。
答案 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或客户端存储。之后,您需要恢复它并在加载页面时进行设置。