3

我以前问过这个问题,但从未真正得到它的工作。

或多或少,我有多个 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/

4

3 回答 3

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; 
});
于 2012-08-14T02:27:30.900 回答
0

尝试改变

var animationtoggle = 1,

animationtoggle = 1, 

并将它们移出功能。如果不是,它们将被一次又一次地初始化

于 2012-08-14T02:27:44.067 回答
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
};
于 2012-08-14T03:41:18.010 回答