首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery变量不会在函数外部更改

jQuery变量不会在函数外部更改
EN

Stack Overflow用户
提问于 2013-04-20 22:34:13
回答 2查看 886关注 0票数 0

我使用下面的代码来显示按下.sidebar切换时的侧边栏,并在按下#page时隐藏侧边栏。

显示侧边栏效果很好,但当#page被按下时,它不会隐藏。当单击.sidebar-切换时,该变量似乎没有设置为1。

代码语言:javascript
运行
复制
var state = 0;

if (state === 0) {
    $('.sidebar-toggle').click(function() {
        $('#page').animate({marginLeft: '230px'}, 400);
        state = 1;
    });
}

if (state === 1) {
    $('#sidebar').click(function() {
        $('#page').animate({marginLeft: '0'}, 400);
        state = 0;
    });
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-20 22:38:33

您忘记使用#page click.function ...最好的方法是把if放在click.function里面...试试这条路

代码语言:javascript
运行
复制
var state = 0;

$('.sidebar-toggle').click(function() {
    if (state===0) {    
        $('#page').animate({marginLeft: '230px'}, 400);
        state = 1;
    }    
});

$('#page').click(function() {
    if (state===1){
        $('#page').animate({marginLeft: '0'}, 400);
        state = 0;
    }
});
票数 1
EN

Stack Overflow用户

发布于 2013-04-20 22:40:06

可能是因为它从未执行过

代码语言:javascript
运行
复制
if (state === 1) {
    $('#sidebar').click(function() {
        $('#page').animate({marginLeft: '0'}, 400);
        state = 0;
    });
}

试着这样做-

代码语言:javascript
运行
复制
var state = 0;
    $('.sidebar-toggle').click(function() {
       if (state === 0) {
        $('#page').animate({marginLeft: '230px'}, 400);
        state = 1;
       }
    });

    $('#page').click(function() {
       if (state === 1) {
        $('#page').animate({marginLeft: '0'}, 400);
        state = 0;
       }
    });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16121478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档