在JQuery中使用多个函数之间的全局变量?

我想使用jQuery动态加载图像,如下所示:

main.js

var slidersrc=""; //try to define global variable - not sure if this is correct jQuery(document).ready(function() { jQuery("#sliderimg").attr('src', slidersrc); }); jQuery("#selection1").click(function() { slidersrc='wp-content/themes/*****/slide1.png'; }); 

因此,当用户第一次访问我的网站时,滑块是空的。 用户单击其中一个选择区域后,我设置了全局变量值。 然后,如果用户继续在我的网站上导航到不同的页面,则应该由于他的选择而向用户显示滑块图像。

但是,这似乎不起作用。

我在jQuery中正确使用全局变量吗? 或者是否有更好的方法来保存客户端的用户选择值?

谢谢!

全局变量不会从一个页面到下一个页面存活。 每个页面都会启动一个全新的javascript上下文(所有新的全局变量,函数等…)。

如果要将状态从一个页面保存到下一个页面,您的选项是:

  1. 将数据放入cookie中,当该页面加载时,您可以从每个连续页面中读取该cookie。
  2. 将数据放入浏览器本地存储中,当该页面加载时,您可以使用javascript从每个连续页面读取该数据(推荐选项)
  3. 将数据存储在服务器上,并将其嵌入到服务器提供的每个页面中。

您可以在此处和此处阅读有关如何从浏览器LocalStorage进行读写的信息 。

如果您计划在每次用户单击时更改滑块图像,则可能需要将索引保存到本地存储中的图像arrays中。 页面加载时,您从localStorage读取当前索引(如果本地存储中没有值,则提供默认值),然后将当前值写回localStorage以用于下一页。 如果用户执行了一些导致索引更新为新值的操作,那么您更新页面然后将该新索引写入localStorage,以便下一页可以从那里读取它,依此类推。

LocalStorage与cookie类似,但它更易于管理和更高效(每次页面请求都不会将数据发送到服务器)。