我以前曾问过这个问题,但实际上从未真正开始工作。
或多或少,我有多个JS文件,我需要检查一个变量。我有一个函数,它检查一个类是否存在,然后更改变量。
var states = function(){
if($('#Animation.switch.switchOff').length == 1){
animationtoggle = 0;
}
else {
animationToggle = 1 ;
}
if($('#Autoscroll.switch.switchOff').length == 1){
scrolltoggle = 1;
}
else {
scrolltoggle = 0
}
return {
animationtoggle: animationtoggle,
scrolltoggle: scrolltoggle
};
}
然后我在另一个函数里面,在另一个JS文件中:
Okay, I've done this, although It still doesn't fix my problem of being able to use this variable on another file, I have this inside the function:
$(function() {
var ss = states();
ss.animationtoggle;
var last_position = 0;
var duration = 300;
if (animationtoggle == 1){
//only do something if it's equal to 1 "on"
});
这是切换按钮代码:
$('#optionMenu ul li').click(
function() {
$(this).toggleClass('switchOff');
var ss = states();
ss.scrolltoggle;
ss.animationtoggle;
});
我是以正确的方式接近这个吗?
请帮忙!这是我的网站,此时切换位于右上角:http://shannonhochkins.v5.cloudsvr.com.au/
答案 0 :(得分:1)
我相信你会通过多次创建和分配相同的变量来覆盖它们。全局变量应该在特定函数的范围之外定义一次,最好接近页面加载的第一个操作。全局变量被分配给窗口对象,并且一旦声明就可以通过名称访问。
//You need to define your global variable out of the scope of your function
var ss = states();
$(function() {
if (ss.animationtoggle == 1){
//only do something if it's equal to 1 "on"
});
$('#optionMenu ul li').click(
function() {
$(this).toggleClass('switchOff');
//Don't create the same variable here with the same name
//Instead access the global variables by using them
// ss.scrolltoggle;
// ss.animationtoggle;
});
答案 1 :(得分:0)
尝试更改
var animationtoggle = 1,
到
animationtoggle = 1,
并将它们移出功能。如果不是,他们将一次又一次地初始化
答案 2 :(得分:0)
尝试重命名函数中的变量以避免混淆:
var animationtoggle = 1;
...
到
var _animationtoggle = 1;
...
return { animationtoggle : _animationtoggle, ....}
或代替您的功能如下:
return {
animationtoggle: ($('#Animation.switch.switchOff').length == 1)?0:1,
scrolltoggle: ($('#Autoscroll.switch.switchOff').length == 1)?1:0
};