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