如何保存单击的链接';与JavaScript中的其他函数一起使用的数据属性

如何保存单击的链接';与JavaScript中的其他函数一起使用的数据属性,javascript,jquery,scope,Javascript,Jquery,Scope,我不熟悉jQuery和JS,当用户从按钮列表中进行选择时,我会尝试使用所选的“主题”。在范围内外使用数据时,我无法使用此主题“数据属性值” 将数据保存到窗口对象的利弊是什么 最好或更好的方法来做这件事 使用输入字段保存和检索的优点和缺点是什么 有更好的方法我不知道吗 我们将使用数据属性foo var data; //this function is called when the link is clicked - making sure the var is *only* created fo

我不熟悉jQuery和JS,当用户从按钮列表中进行选择时,我会尝试使用所选的“主题”。在范围内外使用数据时,我无法使用此主题“数据属性值”

  • 将数据保存到窗口对象的利弊是什么

  • 最好或更好的方法来做这件事

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

  • 有更好的方法我不知道吗

  • 我们将使用数据属性
    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将其存储在某个地方供以后使用

    如果使用jQuery cookie插件,只需调用函数并使用它设置cookie,如下所示:

    $.cookie('name','value');
    
    所以在这种情况下:

    $.cookie('foo',data);
    
    或者,现代浏览器可以使用localStorage,它不需要任何插件,但在IE和旧版本的Firefox中可能会受到一些限制

    本地存储的使用情况如下:

    localStorage.foo = data; //localStorage.foo can be anything you want -- localStorage.bar, etc
    
    下次要引用它时,只需使用它本身或将其设置为var将其拉入JavaScript/jQuery:

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

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

    1) 浏览器兼容性。这将永远是你最大的敌人,特别是如果你知道你必须处理像IE8这样的老浏览器。优点-使用JavaScript/jQuery可以非常容易地完成这项工作,并且流程良好

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

    3) 我不知道你在问什么


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

    你是否试图在重新加载页面后保存这些内容?谢谢你花时间教我。我只是重新尝试了你的建议,我问这个问题的原因是因为我已经尝试了“属性方法”来生成变量,但没有成功。所以我很困惑。。。再次感谢。
    var foo = localStorage.foo;
    if(foo == "this") { //do something}