4

我正在为我的网站开发一个窗口应用程序。现在,我将每个单独的窗口设置为网站正文中的一个。我通过在 body 元素的末尾添加适当的代码来添加新窗口,并通过删除该 div 来删除它们。(我将 jQuery 用于底层 JavaScript 架构。)

我发现对于每个窗口,我都希望能够存储一些不直接使用的值。假设我最大化一个窗口,我想保存它的旧位置和大小,这样当我取消最大化它时,它会返回到它的旧位置,而不仅仅是随机的某个地方。所以我真正的问题是,创建自定义 CSS 属性(完全知道浏览器会忽略它们)是否合法,其唯一目的是在每个 div 的基础上保留这样的信息?或者这会是非法的,我应该看看另一种选择吗?

我当然熟悉将所有这些保存在一个数组中的方法,这样系统就可以盲目地运行它,但这很可爱,而且容易出错和其他事情,而且使用起来仍然有点棘手。

谢谢

4

2 回答 2

8

我会使用jQuerydata()方法来存储临时数据。

$('div#window').data('position', { x: 100, y: 200, width: 50, height: 50});
$('div#window').data('state', 'minimized');

参考资料

您还可以通过将其存储在 cookie 中或服务器端的会话中来使这些数据持久化,并在页面加载时在客户端上恢复它。这样,即使用户重新加载页面,窗口的位置和状态也将保持不变。

于 2009-04-02T20:35:34.873 回答
7

jQuery 有一个鲜为人知的特性,叫做data. 有了它,你可以这样做:

$('#mydiv').data('position', {x: 150, y: 300});

// later
var position = $('#mydiv').data('position');

如果你不喜欢这个(虽然我觉得它很方便),拥有自定义属性当然没有错,尽管这会使它成为无效代码。

于 2009-04-02T20:36:44.557 回答