1

我是 jQuery 和 JS 的新手,当用户从按钮列表中选择时,我正在尝试使用选定的“主题”。在使用范围内和范围外的数据时,使用数据属性值这个主题超出了我的范围。

  1. 将数据保存到窗口对象的优缺点是什么?

  2. 最好或更好的方法来做到这一点......

  3. 使用输入字段保存和检索的优点和缺点是什么?

  4. 有没有更好的方法我不知道?

4

1 回答 1

2

我们将调用#link带有数据属性的链接foo

var data;
//this function is called when the link is clicked - making sure the var is *only*
created for clicked links
$('#link').click(function() {
  data = $(this).data('foo');
  //code to do whatever you want it to do
})

所以现在,对于这个页面,我们有一个变量,其中存储data了 的值。foo任何函数现在都可以使用存储在此变量中的数据,您可以将其存储在某个地方以供以后使用localStorage或使用 cookie。

如果您使用GitHub 上的 jQuery cookie 插件,您可以简单地调用该函数并使用它设置一个 cookie,如下所示:

$.cookie('name','value');

所以在这种情况下:

$.cookie('foo',data);

或者,现代浏览器可以使用 localStorage,它不需要任何插件,但在 IE 和旧版本的 Firefox 等中可能会受到一些限制。

localStorage 的用法是:

localStorage.foo = data; //localStorage.foo can be anything you want -- localStorage.bar, etc

下次要引用它时,只需使用它本身或将其设置为 var 将其拉入 JavaScript/jQuery:

if(localStorage.foo == "this") { //do something }

或者

var foo = localStorage.foo;
if(foo == "this") { //do something}

要更直接地回答您的问题:

1) 浏览器兼容性。这将永远是你最大的敌人,尤其是如果你知道你必须处理像 IE8 这样的旧浏览器。优点 - 使用 JavaScript/jQuery 做起来非常容易并且流畅

2) 始终提供后备。在这种情况下,使用 cookie 可以防止您在旧版浏览器中失去功能。

3)不知道我明白你在那里问什么。

4) 可能。总会有更新、更大、更好的东西出来。这是我目前在我的网站中使用的两种方法,我还没有遇到任何重大问题。

于 2013-08-13T02:37:35.237 回答