我正在为我的网站制作一个窗口应用程序。现在,我将每个单独的窗口设置为站点主体中的一个。我通过逐字地将适当的代码添加到body元素的末尾来添加新窗口,并通过删除该div来删除它们。 (我正在使用jQuery作为底层JavaScript架构。)
我发现对于每个窗口,我希望能够存储一些不直接使用的值。假设我最大化一个窗口,我想保存它的旧位置和大小,这样当我取消最大化它时,它会返回到它的旧位置,而不仅仅是随机的某个地方。所以我真正的问题是,创建自定义CSS属性(完全知道浏览器会忽略它们)是否合法,其唯一目的是保持这样的信息在每个div上?或者这是非法的,我应该看看另一种选择吗?
我当然熟悉的方法是将所有这些保存在一个数组中,这样系统可以用它来运行,但这很可爱,容易出错和事情,它仍然是一个有点棘手。
由于
答案 0 :(得分:8)
我会使用 jQuery 的data()
方法来存储临时数据。
$('div#window').data('position', { x: 100, y: 200, width: 50, height: 50});
$('div#window').data('state', 'minimized');
<强>参考强>:
您还可以将此数据存储在Cookie中或服务器端的会话中,并在页面加载时将其还原到客户端上。这样,即使用户重新加载页面,窗口的位置和状态也会保留。
答案 1 :(得分:7)
jQuery有一个鲜为人知的功能,称为data
。有了它,你可以这样做:
$('#mydiv').data('position', {x: 150, y: 300});
// later
var position = $('#mydiv').data('position');
如果你不喜欢这个(虽然我觉得它很方便),拥有自定义属性肯定没错,虽然这会使它无效代码。